jmeter需要java环境支持,最好是java1.8以上,jre就可以。它是由java语言开发的。
我们这次学习jmeter4.0
1、学习到很丰富的插件
2、很全面的测试报告
3、轻量级的
4、开源的(阿里等大公司会进行2次开发,来适应自己需要)
5、功能测试,接口测试,性能测试都可以。
jmeter目录结构:
bin是可以执行文件的文件夹,在windows环境下,jmeter可执行文件是最重要的。另外jmeter.properties文件是配置jmeter的文件。jmeter.sh是在linux下执行,同样是启动jmeter。
docs是帮助文档,有空可以多看看。
extras里面的jmeter-results-detail-report_21 jmeter-results-report_21 ant-jmeter-1.1.1.jar 这3个文件会对我们后面要用到的测试报告生成有很大的关系。
lib就是jar包,需要注意的是其中还有个junit文件夹,用来做单元测试。
Tips:修改jmeter.properties使界面文字为中文。
由于一个个下载插件比较麻烦,所以可以先把官方的一个管理器jar包放到C:\apache-jmeter-5.0\lib\ext目录下,这样就有了自己的插件管理器。
这个文件是jmeter-plugins-manager,百度到官网下载。
必须的一些插件,使用管理器:
json、PerfMon、websocket
Jmeter的使用,首先添加1个线程组,线程组可以改名字,这里改为webservices,然后再在wevservices上,添加测试用例
主要学习:建立1个http请求,填入对应的请求方法,请求路径,以及请求参数。请求头需要在配置元件里添加。并进行数据的“包含”断言。
建立第2个请求,同样添加HTTP信息头管理器元件。
添加察看树,在监听器中添加。
添加“请求响应状态码”响应断言(可以改为自己想要的名称,比如我图中的),然后选择response headers,添加上“HTTP/1.1 200 OK”
服务器ip以及端口号可以设定,然后把这个默认值拉到这个模块的顶部。这样每个请求都是请求统一ip,假如改变了ip或者端口,就不用一一修改。
动态参数(token)获取的两种方式:
这里的data是指响应的字符串里,有个字段是data。在data这个dict里面有token键。
当然,这里的data{'token},也可以用data.token来表示
当下面的请求接口需要用到token时,就可以用变量表示。
当一个模块接口测试用例中,也许有多个请求都会用到cookie,此时每一步都在header中填入cookie就稍显麻烦,可以在模块中添加一个配置元件:HTTP Cookie管理器,它会自动关联所有的cookie,很省心。(不需要额外的操作)还讲了逻辑逻辑控制器,逻辑控制器需要跟取样器(请求)一起使用才有意义。
测试报告步骤:
cmd的命令提示符输入ant来验证
A 执行测试脚本
B 生成测试报告(html)
C 自动发送邮件
cd C:\apache-jmeter-5.0\testSuite
ant
接口测试的层次:
客户端发送请求到服务器,服务器是否有正常回应(200)
a 参数是否必须添加,假如是,请求的时候字段为空或者没带,服务器也有相应并且返回status200,那么是有问题的
b 字段为空或者字段的边界值,以及字段的类型
3、(假如只做了上面2个层次的校验,虽然接口测试也有有意义的,但是缺少了最重要的一环,基于业务的接口自动化测试,要知道产品都是由业务构成的。)
做了关于业务的接口自动化测试,那么应用层是没有问题的,即使有问题也只是交互层的一些问题。
相对于手工测试,接口自动化测试一次完成,一直执行。
响应数据一般格式:
{‘status’:200,’msg’:’xxx’,’data’:{xxx}}
仍然是通过设置后置处理器:json插件,设置变量(token)
假如你的返回内容有中文,这里请填上utf-8
这里还是拿商户的增加以及删除来做演示,跟postman课程中一样。
TIPS:自动化测试需要保证,每次执行完以后,与执行前一致
意思是有创建,就需要有删除,不要有垃圾数据。形成一个闭环。
说一些现实的话:自动化测试相对于手工测试,肯定有存在的意义,不要说手工也可以测出来。自动化测试节省了时间人力。
另外自动化测试肯定是回归测试上应用的更多些。刚开发的系统bug多,接口自动化测试意义不大,接口测试就可以了。
任然是跟postman类似,老师的一个简单的系统中,进行创建商户,查询商户,激活商户,查询商户是否被激活,冻结商户,查询商户是否冻结,删除商户,查看商户是否删除。来做1个闭环的自动化接口测试业务。
添加上各种断言。
生成报告。