赞
踩
本篇文章只是简单的介绍下Jmeter的下载安装和最基本使用
前一段时间客户端app自测的过程中,有偶现请求某个接口返回数据为空的问题,领导让我循环100次请求这个接口,看看有没有结果为空的问题。听同事说有Jmeter的专业测试工具,正好不是很忙,于是上手Jmeter来测试下这个接口。
Apache Jmeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,最初被设计用于Web应用测试,后来扩展到其他测试领域。
以上介绍出自百度百科,内容介绍太多,不一一介绍了。作为非专业测试人员,知道Jmeter可以对接口进行压力测试,可以满足100次的接口测试就好,更高级的Jmeter使用可以再以后用到的时候再学习,知识可以一点点积累,不用一下全部掌握到。
点击Binaries下的压缩包下载,目前最新的版本为5.4.1
下载成功后,解压直接使用,不用安装,所以把压缩包解压到常用的软件文件夹下
打开终端,进入到该解压文件夹下的bin目录下
选中apache-jmeter-5.4.1文件夹,右键-服务-新建位于文件夹位置的终端窗口
输入命令:sh jmeter,打开Jmeter软件
软件启动页
软件设置中文,Options-Choose Language-Chinese(Simplified)
Jmeter的使用,我是以需求为导向的【在这里是指定接口循环100次】,以完成需求为目标,跟着需求来学习这个Jmeter。
线程组的基本配置
我这里对线程组的配置是1个线程数,间隔1秒,循环5次
在新建的线程组下,添加-取样器-Http请求
假如某个接口为:https://app.test.com/app_login?userName=hahaha&password=7844112b3344112b34f7
https请求需要在协议里明确填写https,
服务器路径或ip项填写:app.test.com【注意不用填写https://,末尾也没有/】
Http请求项根据当前接口的请求方式填写,一般为post或get
路径项填写:/app_login?userName=hahaha&password=7844112b3344112b34f7
端口号:https方式请求,端口号需要填写443,http方式不用填写
请求参数,根据参数字段值进行添加
接口参数配置好之后,我们添加一个察看结果树,就可以进行测试了
选中http请求,右键-添加-监听器-察看结果树
在电脑上创建一个csv文件,用于保存测试的结果,然后在察看结果树中配置该文件
然后就可以进行测试运行这个接口了,选中线程组,右键启动
会提示察看结果树的文件已存在,是覆盖文件还是附加到现有文件,这个根据需求选择就好
点击察看结果树,会看到,右边列表里请求的结果,绿色对号表示接口请求成功
响应的数据结果有多种查看方式可以选择
本地察看结果树保存的文件数据,有一些基本的测试结果数据可供查看
至此,基本上是可以满足对某个接口压测100次的,但是呢,查看结果比较麻烦,需要一个个手动点击每一次的接口去查看结果。比如我现在项目中的接口返回的一个状态码字段ret,ret=0表示接口正常,有数据返回,ret=-2表示接口正常,无数据返回。手动点击100次查看结果,这个效率太低了,可以写一个脚本,把接口返回的某个字段保存到本地文件中,然后直接在文件中去查看结果,这样的话,会方便很多。
那么就用到了Jmeter的正则表达式提取器和BeanShell后置处理程序
正则表达式提取器是提取响应结果中的指定数据
比如想要过滤接口返回的的ret字段值 { “ret”: 0 } ,配置如下
引用名称:自定义的变量名,在后面会用到;
正则表达式:“ret”: [0-9] ,匹配"ret": 后面任意的数字(注意冒号和[ 之间有一个空格)
模板:用
匹配数据:0代表随机取值,1代表全部取值,通常情况下填0
脚本程序如下,将正则表达式匹配到的数据保存到本地文件中
源代码如下:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import org.apache.jmeter.samplers.*; import org.apache.jmeter.config.*; import java.util.regex.Matcher; import java.util.regex.Pattern; FileWriter fstream = new FileWriter("/Users/xxx/Desktop/666.csv",true); BufferedWriter out = new BufferedWriter(fstream); out.write(vars.get("ret")+"\n"); out.close(); fstream.close(); var ret=vars.get("ret"); if(ret!=0){ log.info("ssssssssssssssssssssssssssssssssssssssssssssssssssssss,ret:"+ret); }
log.info可以把日志打印在控制台
选中http请求,右键启动
先查看日志运行结果
发现10次运行,ret字段返回值都为0
查看本地文件是否保存ret字段值
可以看到666.csv文件已经保存ret的值了,我们通过查看666.csv这个文件可以更方便的筛选我们想要的测试结果
Jmeter测试接口的基本功能算是熟悉了,不过它还有很多强大的功能,目前因为没有用到,也就没有进一步深入研究,待以后用到的时候,继续学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。