IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> JMeter 入门实践指南 -> 正文阅读

[开发测试]JMeter 入门实践指南

前言

Apache JMeter是测试工程师日常工作中经常会使用的一款软件,它可用来测试接口、模拟用户负载来完成性能测试工作,可以对web应用或各种服务的性能进行分析和度量。它具有开源高扩展性,使用成本低的特点,是当前使用率最高、最好用最全面的性能测试工具之一。本篇文章为大家详细描述了在使用 JMeter 进行测试时常用的测试场景的脚本编写方法,希望能为你带来一些帮助,推荐收藏,作为工具书查阅。

JMeter 有什么优势?

开源免费:开源意味着高扩展性,免费意味着使用成本低;

高扩展性:支持可视化插件进行扩展测试;

友好GUI:界面简单易用;

可移植性:100% 纯 Java 桌面应用程序,可以多平台运行;

安装方便:组件小,下载安装包解压,配置路径即可使用;

完全多线程:可以通过多个线程组并发取样,也可通过单独的线程组对不同的功能同时取样;

结果可视化:可视化界面展示执行结果和你可能需要关注的性能指标;

多测试策略:比如功能测试、负载测试、分布式测试;

录制回放:支持多种录制脚本的方法,最常见的是第三方工具 Badboy 录制,还有JMeter自身设置来录制脚本;

仿真:可以模仿真实的用户行为;

支持多协议:支持 HTTP、HTTPS、FTP、SOAP / REST、LDAP等多种协议;

支持脚本测试:可以自行编写 bean shell、java脚本进行测试。

下面我们就来了解下如何使用JMeter来进行脚本的开发,首先你要先安装上它。

下载与安装

一、下载地址:Apache JMeter - Download Apache JMeter

二、选择需要版本的zip包(解压安装方式时)

三、文件解压缩,把下载的zip文件解压缩到你的安装目录

四、配置环境变量(适用win10系统)

  1. 系统搜索栏搜索环境变量——弹窗中点击环境变量

  1. 新建JMETER_HOME变量:值为你解压的JMeter安装路径

  1. 编辑classpath变量,在其后追加如下配置:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

五、安装完成

JMeter 安装路径——bin——jmeter.bat,鼠标右键管理员方式运行/双击运行

注意:JMeter 3.0需要对应安装jdk1.7,JMeter 4.0对应jdk1.8以上,否则启用 JMeter 也会报错

快速开始

JMeter 导航栏

初次使用 JMeter 的伙伴可能对界面上的一些元素不太熟悉,下面就通过一张图来说明一些常用元素的含义 。

你也可以打开已存在的脚本,路径为:文件——打开——选择jmx文件即可。

如何进行脚本录制?

使用Badboy进行脚本录制

下载与安装

  1. 下载地址(非官方):https://www.cr173.com/soft/874188.html
  2. 解压后执行exe文件,选择安装目录,下一步确认安装即可

Badboy使用

  1. 双击BadBoy图标,打开BadBoy;
  2. 地址栏输入录制网址,打开网址;
  1. 录制场景;
  2. 录制完成后点击保存,将录制结果保存为BadBoy脚本,以备后面使用;
  1. 点击File->Export to JMeter,保存为JMeter脚本;
  2. Jmeter打开录制脚本,点击File——Open——选中文件。

使用 JMeter 的代理服务器功能进行脚本录制

  1. 在测试计划——线程组——逻辑控制器——添加录制控制器;
  2. 在测试计划中添加非测试元件——HTTP 代理服务器,配置如下图;
  1. 在代理服务器下添加定时器——高斯随机定时器,并配置固定延迟偏移为${T},用于告知 JMeter 在其生成的 HTTP 请求中自动添加一个定时器,定时器会使相应的取样器被延迟,规则为当上一个请求被响应并延迟了指定时间后,再发送下一个请求;
  2. 360浏览器中工具——Internet选项——连接——局域网设置中配置浏览器的局域网代理服务器信息为 localhost,端口为8080;
  1. 开启代理服务器的启动功能,在浏览器中进行系统访问即可进行录制,录制完成后可进行脚本保存,别忘了恢复浏览器的代理服务器设置。

录制效果如图:

但是并不推荐使用脚本录制工具,更推荐手动编写脚本,原因如下:

  1. Badboy 无法支持所有网站的脚本录制,很多网站都不太支持,会出现脚本运行错误;
  2. 使用jmeter配置代理进行录制也很难用,因为录制时每个 js、png 及动态请求都会录制下来,很不高效;
  1. 即使可以录制的网站,其录制脚本的 session 信息也易失效,不具有持续性;
  2. 录制脚本也很容易回放失败。

测试脚本必需元件

JMeter 中一个脚本就是一个测试计划,也是一个管理单元。测试计划需要包含以下要素:

脚本中测试计划只能有一个:JMeter 脚本在 GUI 显示树型结构,测试计划是根节点

测试计划中至少要有一个线程组:JMeter 负载通过线程组驱动,可以建立多个线程组

至少有一个取样器:测试的目的是模拟用户请求,没有取样器的脚本毫无意义

至少有一个监听器:我们需要从结果中分析衡量系统性能

线程组

添加线程组 一个测试计划可添加一个或多个线程组,其中多个线程组的运行采用的是并行的方式,即同时被初始化及同时执行其下的 Sampler。

配置参数:

  1. 线程数:模拟的用户数量;
  2. Ramp—Up Period (in seconds):达到指定线程需要的时间,例如线程数为100,时间设定为10s ,即10s 加载100 个线程,每秒启动的线程数=100/10=10;
  1. 循环次数:每个线程发送请求的次数。

取样器

添加 Sampler 取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录相应时间信息。 常用的Sampler:HTTP 请求、Java 请求、JDBC 请求。

监听器

添加监听器 监听器(Listener)负责收集测试结果,添加成功后便可执行,根据监听结果判断测试是否达到预期目标 我们常用的包括:察看结果数、聚合报告、用表格查看结果,都支持将结果数据写入文件。

添加察看结果树后,运行脚本,可在察看结果树中看到运行结果。

一般关注 Response Code 看请求是否成功,Response Headers 里可能要提取一些身份验证信息。

请求里我们可以观察自己发出的请求信息是否正确,如 Cookie 信息是否正确等。

响应数据是我们最关注的内容了,这里可以查看请求返回的数据,一般我们还需要对响应数据进行断言,来判断接口返回是否符合预期。

常见类型的接口请求

查询参数类型

查询参数,其实就是URL地址中问号(?)后面的部分就叫查询参数,比如:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/fonts/fontawesome-webfont.woff2?v=4.6.1。在这个接口中,查询参数就是v=4.6.1。这一部分是由有键值对组成,格式为:key1=value1&key2=value2, 如果有多组键值对,要用&隔开 。

JMeter 中如何请求

  1. 右键测试计划——添加线程组;
  2. 右键线程组,添加取样器(Sampler)——HTTP 请求,填写以下信息;

  1. 右键线程组,添加监听器——察看结果树;
  2. 点击执行按钮,在察看结果树中即可查看运行结果。

表单类型

在请求头中查看 Content-Type:application/x-www-form-urlencoded .那么就说明客户端提交的数据是以表单形式提交的 。

JMeter 中如何请求

可以在察看结果树中看到post请求中,参数不会跟在请求url的后面,而是单独的表单数据提交,安全性更好。

json类型

这应该是接口测试中最常见的一种情况了 , 请求头中 Content-Type: application/json;charset=UTF-8 。

在 JMeter 中如何请求

添加 HTTP 请求后,填写请求方法为 POST ,服务器信息和 URL ,以及请求的 json 参数。

在 HTTP 请求上添加 HTTP 信息头管理器,需要配置 Content-Type 如下,若不设置,Content-Type 默认是application/x-www-form-urlencoded,会导致请求失败。

请求如下:

上传文件类型

浏览器中可以看到请求的原始传参,如下图所示。

在 JMeter 中如何请求

  1. 添加 Http 请求;
  2. 一定要勾选 Use multipart/form-data for POST。

注意:信息头管理器中不要填写 Content-Type。

常用的文件类型 MIME 类型表(也可用通过页面请求时控制台的 Content-Type 值来获取MIME类型)。

文件格式

MIME类型

.doc

application/msword

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.pdf

application/pdf

.xls

application/vnd.ms-excel application/x-excel

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.ppt

application/vnd.ms-powerpoint

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.txt

text/plain

.png

image/png

上面我们演示了比较常见类型的接口测试,但是实际应用的场景可能更加复杂,下面就来说下必不可少的参数化。

学习指南

体系结构

我们将它拆解为三维空间,X1~X5 是负载模拟的过程。

YI:负载模拟,模拟用户请求

取样器Sampler:模拟用户操作,向服务器发出请求

X2:当取样器有参数化需求时,为取样器提供数据支持

前置处理器:环境/参数准备工作,如数据库连接

配置元件:参数化,为取样器提供预备数据

后置处理器:处理响应数据

X3:控制器:实现各种业务场景的灵活控制

X4:定时器:请求发送的时间控制

X5:线程组:模拟用户负载情况,设置运行线程数、时长、定时运行等

Y2:断言:验证结果正确性,实际结果与预设结果匹配

Z:监听器:对测试结果进行处理和可视化展示,常用的有图形结果、查看结果树、聚合报告等

如何进行参数化?

参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则。常用的参数化元件包括配置元件、前置处理器、函数助手。

用户定义的变量

User Defined Variables 中定义的参数值在 test plan 执行过程中不能发生取值的改变,适用于全局的、在多处引用的变量,比如环境、账号信息等。

在需要引用用户自定义变量的地方进行引用 ${variableName}。

HTTP 请求默认值

当我们在对某个网站进行测试时,往往服务器地址是统一不变的,这时我们就可以使用HTTP请求默认值,设置固定的请求信息,那么在后续的 HTTP 请求中若不配置 Web 服务器信息,则会使用这里的配置值作为默认值。一定程度上提升工作效率,并且当我们想要切换不用的测试环境时,我们也不必进到每个请求中修改,只需在默认值这里修改即可。

前面我们演示了一些在工作中常用的固定参数配置的方法,但是我们工作中常常需要去进行一些参数不固定的请求,比如并发请求时使用不用的账号登录,或者批量造数据时,每次的入参需要不一样,这时我们可以使用下面的方法。

用户参数

用户参数适用于小范围参数变化,每次迭代更新一次 如果有多个用户/使用变量时勾选,则不同的线程用不同的值 如果不勾选,所有线程用的是同一个值。

路径:选中线程组右键添加——前置处理器——用户参数。

csv data set config

当我们想要进行批量接口测试的时候,往往参数是大规模的动态数据,这时我们就可以使用csv来配置请求参数,然后 JMeter 中去读取 csv 文件中的数据,实现接口请求。

路径:选择需要读取文件数据的请求右键添加——配置元件—— csv data set config。

csv 适用大规模的动态参数,我们可以在 csv 文件中维护我们的数据,然后在请求中引用 csv 文件中的参数。

函数助手

函数大全使用指南:Jmeter函数助手大全 - 简书

介绍:JMeter提供了一组函数来帮助生成需要的数据,可用作参数化,还可以进行运算、字符编码格式转换等,以${__function()}形式进行函数调用。

路径:JMeter主菜单——选项——函数助手对话框。

使用:找到对应的函数功能,输入对应参数,自动生成函数字符串,引用函数字符串。

如何进行动态数据关联?

在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在 JMeter 中使用后置处理器来获取这些动态的数据。

JSON提取器

  1. JSON 提取器用于提取 json 格式的内容,选择需要获取内容的请求右键添加--后置处理器-- JSON提取器(JSON Extractor)。根据JsonPath规则进行参数的提取, JsonPath 语法可参考博文 JsonPath基本用法 - 拓荒者-NET - 博客园

参数

释意

variable names

创建变量的名称,该名称后面调用时使用${变量名}引用。

JSON Path expression

JSON 表达式。

Match No.

匹配数字(0 代表随机,1 代表第一个,-1 代表所有),可为空即默认第一个。

Compute concatenation var(suffix_ALL)

是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

Default Value

未取到值的时候默认值。

  1. 在下个接口中通过 ${code} 表达式来引用该变量。

  1. 如果不确定写的表达式是否能匹配到数据,可使用 JMeter 的察看结果树中的 json path expression 测试自己所写的 JSON Extractor 是否正常,写完 JSON 提取器后,点击 Test 即可验证表达式是否成功匹配。

正则表达式提取器

正则表达式允许用户从服务器响应中获取数据,作为一个后置处理器,正则表达式提取器会在每一个请求执行后再执行,正则表达式提取请求的参数值,产生模板字符串,并将结果保存到给出的变量中。

参数

释义

引用名称

在HTTP等请求中,引用此数据,需要用到的参数名称

正则表达式

正则表达式提取内容的范围:

():封装了待返回的匹配字符串。

. :匹配任何字符串。

* : 匹配(*之前的符号)0次或多次

+:一次或多次。

? :不要太贪婪,在找到第一个匹配项后停止

模板

用$$引用起来,正则表达式的提取模式,值从 1 开始,值 0 对应的是整个表达式匹配到的内容。如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是 $1$ ,$2$ 等等,表示解析到的第几个值给 str 。

匹配数字(0代表随机)

最终结果:二维数组

0 代表随机,负数代表返回全部元素并会返回元素总数的变量

其余正整数代表将在已提取的内容中,第几个匹配的内容

1:表示取第1个

以此类推:n 表示取第 n 个

缺省值

如果正则表达式没有搜找到值,则使用此缺省值

实例展示:

待提取响应头:Set-Cookie:xsrf-token=B5FF209B4831463699204ECCDAFAC423; Domain=91lyd.com;

需要提取 xsrf-token 的值,则提取表达式如下 xsrf-token=(.*);Domain

添加一个 Debug Sampler(线程组——Sampler中),可以看到 JMeter 变量中 xsrf-token 变量提取过程保存了一个数组,其中 xsrf-token_g 为元素总数,xsrf-token_g0 为全部字符串,xsrf-token_g1 为取到的第一个匹配内容,以此类推。

正则表达式提取变量引用也是以 ${xsrf-token} 的方式进行引用。

如果不确定写的正则表达式能不能匹配到数据,可以在查看结果树中进行查找,在对应的响应信息中输入正则表达式,勾选正则表达式,点击 find 按钮即可验证正则表达式是否能匹配到。不过该方式适用于 Response Data 的匹配,对于 Response Header 不适用。

如何模拟复杂的业务逻辑?

当我们在进行一些复杂业务场景的请求时,我们可能需要编排请求的执行顺序或者执行次数等,这时我们就需要用到逻辑控制器,逻辑控制器(Logic Controller)可以自定义 JMeter 发送请求的行为逻辑,它与 Sampler 结合使用可以模拟复杂的请求序列。

循环控制器

循环控制器可以设置请求的循环次数或永远循环。

While控制器

While 条件循环:While Controller 会一直运行,直到条件 (Condition) 为 false。

添加元件:右键线程组->添加->逻辑控制器->while controller。

Condition 的可能值如下:为空 -- 直到某次 sample 执行失败才会退出循环 LAST -- 直到最后一个 sample 请求失败,才会退出循环其它 -- 输入最终计算结果等同于“false”的变量或函数。

如下实例:

${var_name} - var_name 的值由其它元素设置为"false"

${__javaScript(${count}<60 && ${code}=="5001")}

${__P(property)} - 某处会被设置为"false"的某个属性 (property)

上图为判断变量 calculateTaxErrorCode 变量的值等于100004时,则执行 While 循环体内的 sampler,否则跳出While 循环。

事务控制器

性能测试结果统计需关注TPS,即每秒事务数,JMeter会把每个请求统计成一个事务,但也可通过逻辑控制器设置。 事务控制器可以将多个请求放在同一个事务中。如果选中 Gegerate parent sample ,则聚合报告中只显示事务控制器的数据,而不会显示其中的各个请求的数据,反之则全部显示。

如何进行请求断言?

断言用于检查测试中得到的响应数据等是否符合预期。在 request 的返回层面增加一层判断机制;因为 request 成功了,并不代表结果一定正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。最常用的断言方式为响应断言。

路径:在选择的【Sampler——断言——响应断言】元件中配置响应的检查内容。

一个 Sampler 可以添加多个断言,当 Sampler下所有的断言都通过了,那么才算 request 成功。

模式匹配规则

包括:相当于 Substring,返回结果包括你指定的内容,可以支持正则匹配 。

匹配:相当于 equals 。当返回值固定时,可以返回值做断言,效果和 equals 相同 。

Equals:返回结果与你指定结果一致。

Substring:返回结果包括指定结果的字串。

:不进行匹配。

要测试的响应字段

响应文本: 服务器响应文本,一般普通http响应,都勾选这个。

Document(Text):包括文本响应,还支持 PDF, Office, Audio, Video等。JMeter 会用 Apache Tika 去解析服务器响应内容,很耗内存且很容易解析失败。

url样本:是对 sample 的 url 进行断言。没有重定向,那么就是请求 url 。 有重定向(且跟随重定向),那么 url就包含请求 url 和 重定向 url 。

响应代码:http 响应代码,如101,200,302,404,501等。要验证 404,501 等 http 响应代码时,需要勾选“ ignore status”。

响应信息:http 响应代码对应的响应信息。

要测试的模式

若响应结果预期为 json 串,可以填写完整 json 格式串(得保证 json 内容完全一致,否则断言失败),如果只想匹配 json 串中的某个字段,可以用 "key":"value" 的形式进行断言,支持多个键值对的断言,如下:

断言结果为通过时,显示绿色。

断言结果为失败时,显示红色。

如何便捷查看性能指标?

当我们执行性能测试的时候,需要关注请求的错误率、响应时间、吞吐量等信息,我们就可以添加一个聚合报告,它会帮我们生成所有 Sampler 的相关信息。具体参数解释如下:

参数

释意

Label

每个 JMeter 的 element (例如 HTTP Request )都有一个

Name

属性,这里显示的就是 Name 属性的值

#Samples

表示你这次测试中一共发出了多少个请求,如果测试计划模拟 10 个用户,每个用户迭代 10次,这里就会显示 100

Average

平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间

Median

中位数,也就是 50% 用户的响应时间

90% Line

90% 用户的响应时间

Min

最小响应时间

Max

最大响应时间

Error%

错误率,本次测试中出现错误的请求的数量 / 请求的总数

Throughput

吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second ) v KB/Sec:每秒从服务器端接收到的数据量

如何进行数据库请求?

测试过程中经常会遇到需要操作数据库增删改或查询数据后作为其他业务的参数使用的场景。

数据库操作的简单用法

  1. 使用不同的数据库,我们需要引入不同的 jar 包。本文以 mysql 数据库举例

方式一:JMeter 中引入 mysql 的jar包到 JMeter 的安装目录:下载 mysql-connector-java-x.x.xx.zip 文件,解压 mysql-connector-java-x.x.xx-bin.jar 到 JMeter 的安装目录下的 /apache-jmeter-3.2/lib/ext 文件夹下,然后重启JMeter。

方式二:使用 JMeter 的 Test Plan 引入相应的 jar 包,在测试计划中,使用 Add directory or jar to classpath 选项。

  1. 在线程组中添加数据库连接配置

1)线程组——配置元件—— JDBC Connection Configuration

2)配置参数

Variable Name: 数据库连接池的名称,我们可以有多个 jdbc connection configuration,每个可以起个不同的名称,在 jdbc request 中可以通过这个名称选择合适的连接池进行使用。

Database URL: 数据库 url,jdbc:mysql:// 主机 ip 或者机器名称:mysql 监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test

JDBC Driver class: JDBC 驱动

username:数据库登陆的用户名

passwrod:数据库登陆的密码

3)不同数据库具体的填写方式,可以参考下面的表格:

DataBase

Driver Class

Database URL

MySQL

com.mysql.jdbc.Driver

jdbc:mysql:/host:port/{dbname}

Oracle

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

PostgreSQL

com.postgresql.Driver

jdbc:postgresql:{dbname}

  1. 配置 JDBC Request

1)线程组——Sampler——JDBC Request

2)配置 JDBC 请求参数

Variable Name:数据库连接池的名字,需要与 JDBC Connection Configuration 的 Variable Name Bound Pool名字保持一致

Query:填写的 sql 语句

Parameter values:参数值

Parameter types:参数类型,可参考:Javadoc for java.sql.Types

Variable names:保存 sql 语句返回结果的变量名

Result variable name:创建一个对象变量,保存所有返回的结果

Query timeout:查询超时时间

Handle result set:定义如何处理由 callable statements 语句返回的结果

以上我们就完成了一个简单的查询和更新 sql ,但是如果我们的返回结果为多行或多列数据时,要怎么获取需要的数据呢?

Variables names 参数使用方法

如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。使用 ${columnName_#}、${columnName_1}...获取相应的值,此处的 columnName 代表具体的列名,如下例中的 customer_id 。

customer_id :代表第一列所有的数据,customer_id_# 可以获取到第一列的行数。

customer_id_n :获得第一列第n行的数据。

tax_no 和 area_code 的功能类似, 假如我们只需要 customer_id 和 area_code 的数据,可以写成customer_id,,area_code ,中间的 "," 不可以省略。

Result variable name 参数使用方法

如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,可以在 BeanShell 脚本中进行获取,获取具体值的方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")。

上面说了 sql 语句固定的情况,如果我们要执行的 sql 需要参数化,该怎么做呢?

JDBC Request参数化

方法一、JMeter 参数化,在 sql query 中使用变量

  1. sql query 中使用 ${变量名} 引用

方法二、在 sql query中使用 "?" 作为占位符,并传递参数值和参数类型

  1. 传递的参数值是常量,多个变量使用 "," 分隔

  2. 传递的参数值是变量,使用 ${变量名} 的方式

如何使用命令行模式?

因为可视化的图形页面会占用一定的资源,影响性能测试的结果,所以当我们在执行性能测试时,更推荐使用命令行执行脚本的方式,脚本如下:

$ JMeter -n -t my_test.jmx -l log.jtl

  • -n 告知JMeter采用非图形化运行JMeter脚本
  • -t 指定要运行的脚本文件
  • -l 指定保存执行结果的文件名

注意:

执行命令前要检查当前目录是否是 %JMeter_Home%\bin 目录;

如果 JMeter 脚本不在当前目录,需要指定完整的 路径;如果要把执行的结果保存在其他地方也要指定完整的路径。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:01:58  更:2021-12-23 16:02:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:36:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码