前言:性能测试的基础是功能测试。性能测试的核心是业务场景,而这个业务场景是从功能测试的场景测试中提取出来的。
所以一个软件的测试顺序是:功能1(接口)→性能N(接口)→自动化(接口) 接口测试则分布在每个阶段,自动化测试是在软件稳定下来才会开展。
一,Jmeter能做什么?
接口测试,性能,压力测试
二,干货吐槽
1.录制工具(尽量少用)
badboy,jmeter代理录制。都是初学者接触jmeter构建脚本的工具。
坑:录制的脚本会有响应失败的请求,一定要自己分析删减掉无用的部分!
jmeter自己构建请求也很简单,最好还是自己写~
2.Jmeter报错(不断总结中......)
这是jmeter右上角的小图标,点击后可以查看jmeter的报错信息
坑1:Caused by: java.lang.ClassNotFoundException: com.jayway.jsonpath.internal.JsonReader
报错说缺少某个插件,情景1:真的缺少那就加上,情景2:有这个插件,重启jmeter是没有用,需要卸载重装这个插件。
坑2:java.lang.OutOfMemoryError: Java heap space
报错说jmeter内存溢出,通俗的讲jmeter跑不动了,电脑也卡了。
这种现象通常在性能测试中出现:
1.修改jmeter文件,调整堆内存 (参考网址:https://www.cnblogs.com/imyalost/p/7901064.html)
—— 不过,这样做也只是隔靴搔痒。用处不大
2.搭建jmeter分布式(参考网址:https://www.cnblogs.com/bf-blackfish/p/11078411.html)
3.在linux服务器上搭建jmeter,通过命令行执行
以下是从一些博文中学习提取出来的,具体链接忘记了~~ 了解了解就行
三,Jmeter的测试领域
常用的领域是:1.Web - HTTP,HTTPS,2.SOAP/REST Webservices (做接口测试,接口性能测试)
而测SOAP/REST Webservices更为合适/常用工具是SoapUI,Postman(对接口参数进行测试)
Jmeter工作原理
1.Jmeter是工作在协议层的(性能测试的核心是在协议分析)
?:Jmeter能否测试App?只要App使用的协议是Jmeter支持的就可以测
2.Jmeter不是浏览器,是模拟浏览器的行为,用HTTP协议向服务器发送请求。
3.Jmeter绕开软件的客户端(浏览器...),模拟协议向服务器发送大流量,造成负载,验证服务器的处理能力。
4.Jmeter是用线程来工作,开销小(HTTP协议是线程,浏览器是进程),Jmeter软件运行是一个进程,里面启动N个HTTP请求的线程。
比如:手动打开10个浏览器(10进程),Jmeter打开10个浏览器(1进程10线程)。手动打开测试,电脑资源占用大。Jmeter只会接收这个链接的HTML纯文本信息(浏览器打开一个页面,会接收页面所有的信息Js,CSS图片.....)