Jmeter
Jmeter自动化测试
软件测试日常记录
毕业于潍坊技师学院,拥有10年工作经验,其中5年软件测试测试经验,负责测试部门的软件测试管理,从软件测试环境搭建到各服务联调以及硬件联调,到产品或者项目上线
展开
-
Jmeter发送SOAP请求对WebService接口测试
1.jmeter必须安装Custom SOAP Sampler2.URL填写下面地址http://ws.webxml.com.cn/WebServices/WeatherWS.asmx3.SOAP版本选择1.24.在SOAP Envelope中输入下面数据<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-12-01 22:37:43 · 285 阅读 · 0 评论 -
JMeter 仅一次控制器
仅一次控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空仅一次控制器一般用在只需要执行一次的场景中,例如登录请求只需要执行一次。仅一次控制器一般用在只需要执行一次的场景中,例如登录请求只需要执行一次。...原创 2021-07-27 10:47:30 · 296 阅读 · 0 评论 -
JMeter 交替控制器
交替控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③忽略子控制器块:当不勾选时,如果其节点下存在交替控制器、循环控制器、事务控制器,那么控制器下的控制器会被当做一个节点执行,每次只执行其中一个控器器下的所有取样器。勾选忽略子控制器块,所有控制器(循环控制器、事务控制器、交替控制器)下的取样器会顺序执行Interleave across threads:意思是允许跨线程交替执行,勾选后,当线程组线程数大于1时,当前线程首次执行会根据线程数顺序进行交替,后续执行按自己所属线程的上一个次原创 2021-07-27 10:45:55 · 568 阅读 · 0 评论 -
JMeter Switch控制器
Switch控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③Switch value:填写索引值,从0开始,控制哪个子元件将被执行。如果索引值为整数,则从 0 开始,如果下标值超出范围,它将运行第 0 个元素,因此它是数字情况的默认值如果该值是非数字(非空),则 Switch 控制器将匹配具有相同取样器名称的元件(区分大小写且完全匹配)当指定的名称不存在时,不执行任何元素。当Value为空时,默认执行第1个子节点元素。如果索引值为整数,则从 0 开始,如果下标值超出范围,它原创 2021-07-27 10:42:18 · 1021 阅读 · 0 评论 -
JMeter While控制器
While控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③Condition:接受变量表达式与变量。blank(不输入任何值): 循环中有取样器执行失败停止LAST: 循环前有取样器执行失败(除200以为的错误)则不进入循环Otherwise:在参数中也可以直接输入true或者false来控制是否执行while controller。当引用的变量值为整数时,可以使用JMeter的__javaScript、__jexl3、__jexl2函数做运算,常用的比较运算符有>原创 2021-07-27 10:25:54 · 1274 阅读 · 0 评论 -
JMeter Runtime控制器
Runtime控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③Runtime(seconds):默认为1,去掉1则默认为0,当为0时,此时不执行其节点下的元件。Runtime控制器是用来控制其子元件的执行时间长度,不控制运行次数。在性能测试中,当某特定的业务需要执行特定的时间长度时,我们可以使用Runtime控制器,来达到特定的业务需s求。Runtime控制器时间长度单位是秒执行Runtime控制器测试片段...原创 2021-07-27 10:19:13 · 1969 阅读 · 0 评论 -
JMeter Include控制器
Include控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③Include Test Plan:需要引入的测试片段测试片段中不能包含线程组原创 2021-07-27 10:15:00 · 258 阅读 · 0 评论 -
JMeter 简单控制器
简单控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空简单的控制器可以结合采样器进行使用,也可以结合其他的逻辑控制器进行使用。简单控制器可以让我们组织采样器与其他逻辑控制器进行结合,提供一个模块的结构和控制,即是在简单控制器下可以添加采样器以及其他的逻辑控制器。简单控制器与其他的逻辑控制器结合使用时,简单控制器并不影响其他逻辑控制器的运行和结果...原创 2021-07-27 10:13:29 · 435 阅读 · 0 评论 -
JMeter ForEach控制器
ForEach控制器属性①名称:随意设置也可以为空②注释:随意设置也可以为空③输入变量前缀:如要使用的变量为name_1,则需要填name④Start index for loop(exclusive):从X-1号的变量开始,X为第几个变量;如填0,实际从第一个开始,这里的x是不包含关系⑤End index for loop(inclusive):到X+1的变量结束,X为第几个变量;如填4,实际第4个不会被使用,只会到第3个。⑥输出变量名称:把变量值赋予变量名⑦Add“_”before num原创 2021-07-27 10:11:03 · 137 阅读 · 0 评论 -
Jenkins+Jmeter+Ant自动化集成环境
1.JDK与Jmeter的安装安装参考链接https://blog.csdn.net/qq_38776582/article/details/905245952.Jmeter插件的安装a)下载Jmeter插件下载链接地址链接:https://pan.baidu.com/s/1h8CQFzuE28bHCVKJ3-6YDw提取码:ai1bb)下载后上传到/jmeter/apache-j...原创 2019-08-09 12:16:20 · 545 阅读 · 0 评论 -
Jenkins+JMeter+Ant自动化集成环境搭建(windows平台)
1.JDK的安装参考链接2.JMeter软件安装JMeter下载链接:https://jmeter.apache.org/下载后并解压3.配置配置JMeter环境变量设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入JMeter安装路径...原创 2021-06-08 12:28:13 · 1608 阅读 · 0 评论 -
jmeter添加全局变量,跨线程组传递参数
在软件测试中,当我们想把某个变量值想设置为全局变量,也就是在任何一个线程组都可以使用该变量时,我们就要用到BeanShell 取样器,示例如下:1.拿到某个接口的变量值2.通过BeanShell 取样器来设置,格式如下:${__setProperty(全局变量值,${变量值},)};3.在本线程组或者其他线程组引用格式如下:${__P(全局变量)}5.运行结果如下:...原创 2020-10-29 13:24:48 · 774 阅读 · 1 评论 -
JMeter报JSONObject not found in namespace
当JMeter运行时报Typed variable declaration : Class: JSONObject not found in namespace,是因为${JMETER}\lib\下缺少json.jar包,下载链接如下:https://pan.baidu.com/s/1KFDUIq40BhUXcy2NYo7YkA 密码: c91mhttp://www.downcc.com/so...原创 2020-04-30 13:18:32 · 6666 阅读 · 3 评论 -
jmeter处理接口返回值带反斜杠的数据
在软件的测试过程中,我们会遇到接口返回值带反斜杠的数据,比如:那么当我们遇到这样的数据怎么将反斜杠转义处理了呢1.首先我,我们添加BeanShell PostProcessor后置处理器2.在插件写入一下代码(抛砖引玉,达不到要求的自行修改)var music_url=vars.get("url");//url是边界提取器提取出来的值,这里我们通过插件先拿到url的变量值log.i...原创 2020-04-22 16:36:48 · 4147 阅读 · 0 评论 -
jmeter如何将下载文件保存到本地
在软件的测试过程中,我们会遇到某些接口相应的数据是非text的,比如图片、音乐等,当我们想把接口相应的非text的数据保存到本地怎么处理呢,解决方法如下:添加BeanShell Sampler这个取样器,然后放在返回非text的数据接口的后面,如图:在取样器里面编写添加如下代码import java.io.*;byte[] result = prev.getResponseData()...原创 2020-04-22 16:19:33 · 1926 阅读 · 0 评论 -
Jmeter响应结果乱码怎么解决
在测试过程中,我们使用观察结果树查看响应数据时,以Text的形式展示,响应数据包含乱码:原因是Jmeter的结果处理编码与接口的编码不一致;a、Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文);b、接口的结果编码可能是gbk、UTF-8;解决方法:1.使用后置处理控制器"BeanShell PostProcessor"在“Script”中增加“p...原创 2020-04-22 14:24:29 · 666 阅读 · 1 评论 -
Jmeter TCP取样器(发送16进制报文)
JmeterTCP取样器发送有三种启用方式:TCPClientImpl:文本数据,默认为这种BinaryTCPClientImpl:传输16进制数据,指定包结束符.LengthPrefixedBinaryTCPClientImpl:数据包中前2个字节为数据长度。可在bin/jmeter.properties配置文件中tcp.binarylength.prefix.length设置。在实...原创 2020-03-13 17:24:29 · 3103 阅读 · 0 评论 -
Jmeter-WebDriver Sampler添加对话框里面的下拉框无法定位
在做功能GUI自动化测试时,我们经常会WDS.browser.findElement(pkg.By.xpath(‘xxxxxxx’)来定位某个元素,但是定位在对话框中的下拉框的元素无法使用xpath下的代码可能会定位不到,如下图所示:这里的下拉选择框用xpath的代码就无法定位,解决办法是使用full xpath下的代码进行定位:如下:ok,Jmeter-WebDriver Sampler...原创 2020-03-12 16:40:51 · 484 阅读 · 0 评论 -
Jmeter使用WebDriver Sampler处理点击某个链接后返回之前页面操作
在做功能GUI自动化测试时,我们会遇到这样一个场景,点击某个按钮或者链接,页面跳转后在返回之前的页面,这样的场景该如何实现呢,代码示例如下: var gongjinshu = WDS.browser.findElement(pkg.By.xpath('//*[@id="app"]/div/div[2]/section/div/div/div/section/div/div[2]/ul/li[1]...原创 2020-03-12 10:51:07 · 726 阅读 · 0 评论 -
Jmeter使用WebDriver Sampler处理页面跳转和模拟用户等待
当我们在使用Jmeter插件jp@gc - WebDriver Sampler做功能GUI自动化测试时,会遇到这样的场景,点击某个按钮页面跳转(如点击登录按钮页面跳转到系统的首页),跳转后的页面不经过处理跳转后页面的元素是无法定位到的,此时我们需要以下处理://点击登录按钮var login = WDS.browser.findElement(pkg.By.xpath('//*[@id="ap...原创 2020-03-12 09:24:25 · 1479 阅读 · 0 评论 -
Jmeter如何使用jp@gc - WebDriver Sampler做功能GUI自动化测试
随着Jmeter的版本不断迭代更新,尤其是其插件。Jmeter不仅可以完成性能测试、接口测试,而且可以依靠jp@gc - WebDriver Sampler来完成GUI的功能自动化测试了。1.jmeter的安装步骤这里我就省略了,可以自行百度2.安装jp@gc - WebDriver 插件,下载JMeterPlugins-WebDriver-1.4.0.zip,解压之后把lib目录下的所有ja...原创 2020-03-10 16:07:55 · 1571 阅读 · 0 评论 -
Jmeter报java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/Kernel32错误怎么解决
1.报错如下:2020-03-06 16:36:07,959 ERROR o.a.j.JMeter: Uncaught exception: java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/Kernel32 at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8...原创 2020-03-06 16:46:20 · 3006 阅读 · 0 评论 -
Jmeter插件标签未显示怎么办
1.下载插件jmeter-plugins-manager.jar,官方地址为:https://jmeter-plugins.org/install/Install/链接:https://pan.baidu.com/s/1z3q8vJ_Cb00UKRIjJngOvQ提取码:stg72.把下载的jar复制到JMeter安装路径的\lib\ext目录下(注意是ext目录下)3.重启JMeter...原创 2020-03-06 15:32:14 · 1467 阅读 · 0 评论 -
JMeter实现相对并发和绝对并发
1.相对并发是指在一个时间段内发生的事务举例如下:在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动10个线程,其对应的相对并发为5(线程数/启动时间),在没有添加其他逻辑控制器或定时器的情况下,线程属性中设置循环次数为3次,则sampler总共执行30次(线程数*循环次数)2.绝对并发是指在同一时刻发生的事情jmeter又如何实现绝对并发的呢?一般采用同步定时器(Synchr...原创 2020-01-11 17:20:28 · 4374 阅读 · 1 评论 -
Jmeter元件Loop Controller
循环控制器可以控制在其节点下的元件执行次数,如果在线程组中也设置了执行次数,那么循环控制器下的元件的执行次数是线程组执行次数乘以循环控制器执行次数,是倍数关系。比如,在线程组设置执行次数为10次,循环控制器执行次数设置30次,那么循环控制器下的元件执行次数为300次。参数解释如下:名称:控制器名称,可以随意设置,也可以为空注释:可以随意设置,也可以为空循环次数:可以设置为Forerver...原创 2019-11-15 17:16:10 · 1024 阅读 · 0 评论 -
Jmeter元件交替控制器
交替控制器,其节点下的取样器会交替执行。如下图所示:我们设置了一个线程,执行3次,执行顺序分别是:HTTP请求-001、HTTP请求-003、HTTP请求-002、HTTP请求-003、HTTP请求-001、HTTP请求-003参数说明如下:名称:控制器名称,可以随意设置,也可以为空。注释:可随意设置,也可以为空。Ignore sub-controller blocks:忽略子控制器,即...原创 2019-11-15 17:11:56 · 226 阅读 · 0 评论 -
Jmeter元件While Controller
在接口测试中,我们会遇到这样一个业务场景,期望某节点下的元件一直运行到While条件为false。这个控制器可以帮助我们实现一些业务逻辑,比如接口a是用来提取订单id的,id赋值给变量id,我们就可以通过{id},我们就可以通过id,我们就可以通过{id}是否为null来下订单,或者执行下游业务。参数说明如下:名称:控制器名称,可以随意设置,也可以为空注释:可以随意设置,也可以为空Condi...原创 2019-11-15 17:08:59 · 201 阅读 · 0 评论 -
Jmeter非GUI运行模式
非GUI方式是没有Jmeter界面的,我们在命令窗口通过命令来运行脚本。Jmeter可视化界面及监听器动态展示结果都比较消耗负载机资源,在大并发情况下,GUI方式会导致负载机资源不够用,会对性能测试结果造成影响。需要注意的是,被测系统的性能并不会受到影响,比如响应时间变大,而是影响了负载量的生成,比如非GUI方式1000个线程可以产生1000TPS的负载,而GUI方式只产生700TPS的负载,如果...原创 2019-11-15 17:06:18 · 1175 阅读 · 0 评论 -
Jmeter元件Runtime控制器
Runtime控制器是用来控制其子元件的执行时间长度。在性能测试中,当某特定的业务需要执行特定的时间长度时,我们可以使用Runtime控制器,来达到特定的业务需求。Runtime控制器时间长度单位是秒,参数解释如下:名称:可以随意设置,也可以为空注释:可以随意设置,也可以为空Runtime(seconds):默认为1,去掉1则默认为0,当为0时,此时不执行其节点下的元件。下面我们举例说明:...原创 2019-11-15 17:04:48 · 1186 阅读 · 0 评论 -
Jmeter元件Include Controller
Include Controller是用来导入外部的测试片段,脚本运行时会执行导入的测试计划。但是被导入的测试计划有特殊要求,它不能有线程组,只能包含简单控制器及控制器下的元件,就是相当于加了一个执行单元,一个封装了业务的操作单元,类似于开发中的函数一样。比如一个查询任务的业务我们用取样器来模拟,然后放到简单控制器中作为一个执行单元,别的地方要用到时,我们可以不用重写直接引用过来,这类似Java开...原创 2019-11-08 08:50:03 · 472 阅读 · 1 评论 -
Jmeter元件ForEach Controller(循环控制器)
ForEach Controller即循环控制器,顾名思义是定义一个循环规则。如下图所示:参数说明如下:名称:控制器名称,可以随便设置,也可以为空。注释:可以随意设置,也可以为空。输入变量前缀:可以在“用户自定义的变量”中定义一组变量,循环控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。开始循环字段:循环变量下标起点结束循环字段:循环变量...原创 2019-11-07 09:04:57 · 557 阅读 · 0 评论 -
Jmeter函数__MD5
在接口测试中,我们会遇到这样一个情况,某接口的参数数据需要MD5加密,那么我们就可以应用jmeter自带的MD5函数。如下图所示:参数说明:String to calculate MD5 hash ##将字符串通过MD5算法进行计算Name of variable in which to store the result (optional) ##把通过MD5算法进行计算的结果传给一个...原创 2019-11-04 16:13:18 · 1097 阅读 · 0 评论 -
Jmeter函数“__Random”
首先我们先看看Jmeter官方对__Random函数的解释:The random function returns a random number that lies between the given min and max values.意思是随机函数返回的值是在指定的最大数值与最小数值之间的数字。参数如下:Minimum value 最小值Maximum value ...原创 2019-10-30 17:03:45 · 1244 阅读 · 0 评论 -
jmeter的时间戳函数使用
在使用jmeter做接口测试的时候,经常会要用到日期这种函数,让系统自动生成一些格式化的数据,方便接口测试,jmeter自身就带有时间戳的函数1、__time:获取时间戳、格式化时间(1)、${__time(yyyy-MM-dd HH:mm:ss:SSS,time)} :格式化生成时间格式 2018-10-26 11:08:23:635(2)、${__time(,)}:默认该公式精确到毫秒...原创 2019-06-17 23:37:36 · 462 阅读 · 0 评论 -
JMeter_Ubuntu上安装jmeter
JMeter是Java的测试工具,由Apache开发,在ubuntu上安装jmeter需要java环境和jmeter安装包,下面我们分两步走1、部署java运行环境在apache官网下载jdkhttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html根据自己的ubuntu系统下...原创 2019-05-24 23:34:42 · 14916 阅读 · 2 评论 -
Jmeter元件BeanShell 取样器调用Java代码处理时间
在测试过程中经常会遇到一些接口中的参数需要进行处理时间格式,比如当前时间、当前日期,当月一号,下个月一号等等,下面我们就使用Jmeter组件BeanShell 取样器调用Java代码进行处理,首先在jmeter的目录D:\apache-jmeter-5.1.1\bin下新建DateUtil.java,如下图:代码如下:import java.text.Format;import java.t...原创 2019-05-22 09:02:07 · 10329 阅读 · 0 评论 -
Jmeter元件HTTP请求默认值
Jmeter组件HTTP请求默认值使用场景:当我们创建一个测试计划有很多个请求且都是发送到相同的server,这时我们只需添加一个 Http request defaults组件并设置“Server Name or IP”,然后添加多个http请求且不设置"server name or ip",这些http请求会默认使用Http request defaults组件设置的值。注意,该组件只需...原创 2019-05-23 08:58:50 · 10406 阅读 · 0 评论 -
Jmeter刷csdn博客访问量
使用Jmeter刷csdn博客访问量首先我们先分析一下该网站的接口情况服务器ip为blog.csdn.net协议为https接口url为/qq_38776582请求方法为GET打开jmeter,分别将参数填写进去:copy请求头参数,填写在HTTP信息头管理器:接下来是最关键的一步,分析博客页面数据:添加边界提取器,提取数据:接下来我们把提取到数据添加到接口中:脚本总...原创 2019-05-30 09:48:54 · 7238 阅读 · 2 评论 -
Jmeter元件Switch控制器
在测试过程中,我们会遇到这样一个业务场景,某业务流程出现分流,比如当生成某个计划后,需要审核通过或者驳回该计划,此时就该组件Switch控制器登场了:组件Switch控制器该控制器可以控制他里面的Http请求,根据switch value选择控制器下的对应数字位的不同sampler。比如,当switch value值为0时,执行HTTP请求–001,而不执行HTTP请求–002,当swit...原创 2019-05-23 14:59:27 · 13547 阅读 · 0 评论 -
Jmeter元件边界提取器提取响应结果中的链接
在测试中,我们会遇到这样一个场景,当服务器的响应结果是HTML格式的信息时,我们需要关联HTML中的某些链接,使用的关联组件有:其中最满足使用的应该是边界提取器组件,下面我们就看看该组件如何添加:该组件页面为:我们把关联的数据引用到请求中:关联的数据如下:至此,组件边界提取器的使用就分享到这里,谢谢!...原创 2019-05-24 10:00:29 · 12123 阅读 · 5 评论