目录
一、JMeter断言
1.1 响应断言
1.2 JSON断言
1.3 断言持续时间
二、关联
2.1 正则表达式提取器
2.1.1正则表达式介绍
2.1.2正则表达式提取器
2.1.3 正则表达式提取器步骤
2.2 XPath提取器
2.3 JSON提取器
2.4 跨线程组的关联
三、自动录制脚本
3.1JMeter脚本录制原理与演示
3.2 JMeter过滤规则的使用
3.3 Cookie管理器
一、JMeter断言
断言:判断预期结果与实际结果是否一致
JMeter断言是在请求的返回层面增加一层判断机制,考虑到请求成功并不代表结果一定正确,因此需要检测机制提高测试的准确性。
JMeter中常用的断言:响应断言、JSON断言、持续时间断言(Duration Assertion);
1.1 响应断言添加方式:测试计划—>线程组—>http请求—>断言—>响应断言
案例:
请求:https:// www.baidu.com
检查其响应数据中是否包含:百度一下,你就知道
如上图依次新建线程组、http请求、响应断言、查看结果树;输入http请求,响应断言中添加包含信息,在结果树中查看。
配置介绍:
1.2 JSON断言注释:可以在同一个HTTP请求下包含多个响应断言 ,也可以在一个响应断言中添加多个同类型的断言;
响应断言可以断言任何格式,但是json类型使用json断言效率更高;
该组件用来对JSON文档进行验证,验证步骤如下:
1)首先解析JSON数据,如果数据不是json,则验证失败;
2)使用Jayway JsonPath 1.2.0中的语法搜索指定路径,如果找不到,就会失败
3)如果在文档中找到json路径,并且要求对期望值进行验证,那么将执行验证 *** 作。
添加方式:测试计划—>线程组—>HTTP请求—>(右键添加)—>JSON断言
1.3 断言持续时间 持续时间:在每个响应标记为失败之前运行的最大毫秒数案例:请求http:www.weather.com.cn/data/sk/1010100.html
检查:检查响应的JSON数据中,city对应的内容是否为“北京”
案例:访问http://www.jd.com 断言持续时间为100 1)添加线程组 2)添加http请求 3)添加断言持续时间 4)添加断言结果 5)添加查案结果树
实际时间,是统计的取样器结果中的load time
二、关联当请求之间有依赖关系,如一个请求的入参(即请求参数)是另一个请求返回的数据,这时候需要关联处理,JMeter可以通过“后置处理器”中的一些组件实现关联。
比如token就是关联关系
常用的关联方法:正则表达式提取器、XPath提取器、JSON提取器
2.1 正则表达式提取器添加方式:测试计划—>线程组—>HTTP请求—>(右键添加)后置处理器—>正则表达式提取器
2.1.1正则表达式介绍2.1.2正则表达式提取器百度一下,你就知道 百度一下,你就知道 .*?
. 通配符,可以代表任意字符(除换行回车以外) * 代表前面的字符出现0次或者多次 .* 匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据都被记录下来 ? 代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找左边界和有边界,可以查找多个结果。 左边界.*?右边界 可以提取出想要获取的数据内容 注:正则表达式在线工具:在线正则表达式测试
正则表达式可以提取任意格式的响应数据。
参数介绍:
模板:正则表达式可能匹配多组值,通过模板的编写来保存指定的值到变量中
2.1.3 正则表达式提取器步骤027-332-1111
数字:/d
(/d/d/d)-(/d/d/d)-(/d/d/d/d)
$1$ $2$ $3$
2.2 XPath提取器场景:
请求:http://www.itcast.cn/,获取网页的title;
请求:https://www.baidu.com/,将获取到的title作为请求参数。
*** 作步骤:
1)添加线程组
2)添加http请求-传智播客的首页
3)添加正则表达式提取器并配置
4)添加http请求——百度,在参数中正则表达式提取中定义的变量title:${title}
5)查看结果树
只能用于返回的数据是html格式的请求时才能用XPath提取器;
添加方式:测试计划—>线程组—>http请求—>后置处理器—>XPath提取器
参数介绍:
2.3 JSON提取器应用场景:返回的数据为json格式时,可以使用json提取器;
参数设置 :Names of created variables:存放提取出的参数值的参数;JSON Path Expression:JSON路径表达式
案例:
1.请求天气接口,http://www.weather.com.cn/data/sk/101010100.html
2.获取返回结果中的城市
3.请求:https://baidu.com/s?wd=北京,将获取到的城市名作为请求参数
步骤:
1)添加线程组
2)添加http请求--天气
3)添加json提取器
参数名
JSON路径
4)添加http百度请求
引用json提取器中定义的
5)查看结果树
总结:以上三种提取器关联方式都有个共同点就是前后两个请求都在同一个线程组下,即同一用户发送的两个关联请求,可以用提取器 *** 作。
2.4 跨线程组的关联当有依赖关系的两个请求(一个请求的入参是另一个请求的返回数据)放入不同的线程组中时,就不能使用提取器保存变量来传递参数值,而是要使用JMeter属性传递;
JMeter属性的配置方法
三、自动录制脚本 3.1JMeter脚本录制原理与演示案例:
线程组1:请求天气接口,http://www.weather.com.cn/data/sk/101010100.html,获取返回结果中的城市名
线程组2:https://baidu.com/s?wd=北京,将获取到的城市名作为请求参数
*** 作步骤:新建线程组1,添加http请求-天气,添加json提取器,添加BeanShell取样器(将JSON提取器提取的值保存为JMeter属性)
添加http请求-百度(读取JMeter属性),添加查看结果树
注:两个线程组目前是并行运行的,要使查询天气的线程在前面运行需要独立运行每个线程
应用场景:在没有接口文档的旧项目当中,快速录制web页面产生的http接口请求,帮助编写接口测试脚本。
脚本录制原理:代理服务器原理可以拦截和转发请求与响应数据。
JMeter在客户端和服务器之间做代理,收到所有的请求和响应数据后,JMeter在进行逆向解析动作,将数据报文转化为脚本。
脚本录制演示:
1)在JMeter中,测试计划中添加非测试元件中的HTTP代理服务器;
2)配置PC机器中的代理服务器;
3)点击启动,进入浏览器进行相关 *** 作,脚本会自动生成在指定的线程组下;
3.2 JMeter过滤规则的使用打开浏览器进行相关 *** 作,再返回jmeter线程组下可以看到相关脚本。如果脚本太多,可以使用过滤筛选;
3.3 Cookie管理器管理cookie:自动将cookie信息添加到后续的所有请求中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)