何为Jmeter?
Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序)。它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。
另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。(以上内容搬自JMETER手册)
其实关注不外乎是为什么要学习Jmeter。Jmeter可以用来模拟用户行为进行压力、负载测试,也就是可以用来实施性能测试,最多是用于APP,Web更多会选择LR。但是当时我刚听到Jmeter是来源于接口测试。接口测试关注的离不开这三个因素:地址、数据(参数)、返回数据。那我就从这三个方面来说说Jmeter的初次使用。
Jmeter的安装
在安装使用Jmeter之前先安装好JDK。我在官网下载的最新版的Jmeter,要求安装JAVA 8.0 or JAVA 9.0。因为之前安装Eclipse时安装过jdk,java -version一下发现版本刚刚好.那接下来就好办多了。
在官网上下载了以下安装包。在官网上还给了后缀为tgz的安装包,这个一般在Linux上使用。
不用安装,解压缩到某个地方,然后设置环境变量,在path中把Jmeter的绝对路径(也就是在解压到哪)加入。注意分号。使用时双击bin目录下的ApacheJmeter.jar或者jmeter.bat,linux下双击jmeter.sh。
目录结构
注:backups是后来使用之后关于线程组的一些请求数据,返回数据等。
bin: 可执行文件,启动、配置等相关命令
docs:官方本地文档,有接口信息等
extras:扩展插件
lib:Jmeter用到的各种基础库和插件
licenses:许可证
printable_docs:用户手册
初次使用Jmeter
1、在测试计划上右键添加->Threads->线程组
线程组其实也就是用户的意思。一个线程数也相当于一个用户,循环次数就是这个用户要实行几次。Ramp-up Period(in Seconds)表示用户启动的延迟时间,若设置为2秒,则2秒后则启动该线程。
Setup Thread Group用于执行测试前的线程组,其实我不太明白。
tearDown Thread Group测试后的线程组。
添加线程组后右键->Sampler->HTTP请求。
服务器或ip也就是我在上面提到的地址,数据(参数)也就是Parmeters,同请求一起发送。
添加监听器查看取样器数据、请求、返回数据。个人比较习惯察看结果树。
关于察看结果树的作用域要声明一下。在察看结果树下可以查看与之同级的请求,而某一请求下的察看结果树只能该请求。如
察看结果树1只能察看该父节点,不能查看请求two。
察看结果树2可以查看与之同级的请求,即请求http://www.baidu.com和two.
可以单击元件,按住不放调整位置。如若将察看结果树2放至请求two下,则可将察看结果树2托至two,松开鼠标即可。
那么如何看返回数据来确定返回数据是否正确呢?这时就引入响应断言了。
响应代码也就是200,400,500之类的。要测试的模式这个还不会用,但是也基本了解是什么的,比如在发送请求时的一些参数,定义的一些变量等,可以通过这个检索匹配返回数据中是否有该值。
噢,对了。在初次使用时发现返回的数据为乱码,解决方法:在bin目录下的jmeter.properties文件里的"samplerresult.default.encoding=iso-8859-1"中”iso-8859-1“改为”utf-8“。