一:背景
最常用的两种接口是webservice接口和http api接口:
webservice 接口走soap协议通过http传输,请求报文和返回报文都是xml格式,可以通过jmeter、soapui工具进行测试
http api接口是走http协议通过路径来区分调用的方法,请求报文都是key-value形式,返回报文一般是json串,常见的请求方式有get、post请求等
二、JMeter环境部署
1、检查自己的java版本是不是8+:java -version
2、官网下载:https://jmeter.apache.org/download_jmeter.cgi
少侠有空读读官方文档:https://jmeter.apache.org/usermanual/get-started.html
3、添加环境变量Path
D:\Jmeter\apache-jmeter-5.2.1\bin
4、启动方法
1)双击bin目录下的jmeter.bat
2)终端直接执行命令jmeter
3)win+r直接运行jmeter.bat
三、JMeter入门指导
1、ctrl+shift+鼠标滚轮改变字体大小
2、options里可更改颜色、语言
3、在测试计划(Test Plan)下添加线程组(Thread Group)
4、在线程组下添加采样器(Sampler)
执行----->保存
5、在线程组或测试计划下添加监听器(Listener)、察看结果树(View Results Tree)
6、在采样器下添加断言(Assertion)
四、JMeter组件和元件
组件和元件
1、线程组(Threads)
2、配置元件(Config Element)
-
1)HTTP Header Manager:设置http请求头headers,见五
- 参数面板
-
2)User Defined Variables:定义全局变量,见八
- 参数面板
-
3)HTTP Request Defaults:设置http请求的参数默认值,见九
-
参数面板
-
-
4)CSV Data Set Config:实现参数化
- 参数面板
3、监听器(Listener)
4、定时器(Timer)
5、前置处理器(Pre Processor)
6、后置处理器(Post Processor)
-
JSON Extractor:从json格式的响应body中提取数据
- 参数面板
7、断言(Assertion)
-
Response Assertion:响应断言,见七
- 参数面板
8、采样器、取样器(Sampler)
9、逻辑控制器(Logic Controller)
五、jmeter用fiddler抓包
1、设置Jmeter的代理(添加Http代理服务器)
2、发送请求
3、伪装成浏览器,要设置请求头:
六、jmeter请求html文档
七、jmeter断言应用范围
1、
2、
八、jmeter定义变量
1、在测试计划里定义变量,相当于全局变量
2、在user defined variables里定义变量,也相当于全局变量
九、YSHOP项目登录(请求携带uuid、token参数)
1、
2、后置处理器要提取的参数(uuid)
3、 添加debug采样器,取得uuid的实际参数名
4、在请求headers里添加请求body的格式参数
5、携带uuid参数,提交对应格式的请求
十、jmeter工作原理
jmeter作为浏览器与web服务器之间的代理网关,可以捕获浏览器的请求和web服务器的响应,通过线程来模拟真实用户对web服务器的访问压力。基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果。
jmeter监听8888端口。
如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;
如果取样器中有关联需求,可以通过后置处理器来完成;
如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;
如果要模拟并发场景,可以通过定时器来完成;
如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;