Jmeter系列之常用组件(二)
VOL 130
01
2020-06
今天距2021年213天
这是ITester软件测试小栈第130次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“21天打卡”一起学习成长,打怪升级。
本文4057字,阅读约需11分钟
在上一篇:Jmeter系列之常用组件(一),主要介绍线程组、HTTP请求默认值、用户定义的变量、固定定时器的应用场景及实战。
以下主要介绍正则表达式提取器、调式取样器(Debug Sampler)、响应断言、HTTP信息头管理器的应用场景及实战。
一
正则表达式提取器
1
使用场景
从请求的响应结果中取到需要的内容,作为下一个接口的入参从而实现关联。比如登录后,用正则表达式获取token
,其他接口携带token请求。
2
正则表达式提取器界面说明
①HTTP请求右键,依次点击添加--》后置处理器--》正则表达式提取器。
②创建的正则表达式提取器页面如下:
APPly to:
Main sample and sub-samples: 作用于主节点的取样器及对应子节点的取样器;
Main sample only:仅作用于主节点的取样器;
Sub-samples only: 仅作用于子节点的取样器;
JMeter Variable Name to use: 作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定变量值中提取需要的值。
要检查的响应字段:
主体:响应报文的主体,最常用;
Body(unescaped):主体,是替换了所有的html转义符的响应主体内容,注意html转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用;
Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影响性能;
信息头:响应信息头;
Request Headers:请求信息头;
URL:请求url;
响应代码: 响应状态码,比如200、404等;
响应信息: 响应信息。
引用名称:
提取结果之后的变量名称,即下个请求需要引用的值,后面引用方式是${变量名}
。
正则表达式:
使用正则表达式解析响应结果,()
括号表示提取字符串中的部分值,前后是提取的边界内容。
一般通用的正则表达式(.+?)
。
如需了解更多关于正则表达式知识,可参照:Python自动化测试-正则表达式解析一文。
模板:
如果正则表达式有多个提取结果,则结果是数组形式。若只有一组表达式,则使用$1$
,两组正则匹配使用$1$$2$
,以此类推。
匹配数字:
正则表达式匹配数据的结果可以看做一个数组:-1
表示全部,0
表示随机,1
表示第一个,2
表示第二个,依次类推。
缺省值:
如果参数没有取到值,那默认给个值,比如null
。
3
实战小例子
提取登录响应结果的token:
①创建一个线程组。
②创建一个HTTP请求,用来发送登录请求,登录接口请求参数配置如下。
③HTTP请求,右键,创建一个正则表达式提取器。
先来看下登录接口返回结果:
{"data": {"mobile": "12345678","id": 500,"rid": 0,"email": "adsfad@qq.com","username": "admin","token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1OTA5MDY3MzAsImV4cCI6MTU5MDk5MzEzMH0.M3CWrgsDUMvnhkprQMBJ1wWY5OKO-mKiOD4EJ2YV4zc"},"meta": {"msg": "登录成功","status": 200}
}
正则表达式提取token,配置如下:
④创建一个察看结果树,运行后,接口返回如下:
二
调式取样器
(Debug Sampler)
1
使用场景
主要用于打印出变量进行调试。比如上面例子,虽然用正则表达式提取了token,但我们并不知道token是否有正确提取,可以使用调式取样器
查看。
2
调试取样器界面说明
①线程组右键,依次点击添加--》取样器--》Debug Sampler。
②调式取样器界面如下:
有三个参数Jmeter 属性,选项值默认即可。
Jmeter 属性,系统属性,一般不会变,不需要调试。
Jmeter 变量调试的是Jmeter中自定义的变量,包含如下这些自定义变量:
选中线程组,右键,添加--配置元件—用户定义的变量;
通过后置处理器生成的变量:Jmeter关联;
使用csv参数化的变量:Jmeter参数化。
3
实战小例子
①创建线程组、HTTP请求、正则表达式提取器、察看结果树(介绍正则表达式实战例子有,这里省略创建步骤)。
②创建调式取样器(debug sampler),不需要修改,默认即可。
③运行,在察看结果树中,选择调试取样器,可以看到token已经正常获取到。
注意:一般来说调式取样器(debug sampler)用于自测使用,上线时可以删除。
三
响应断言
1
使用场景
在接口测试过程中,需要判断接口返回结果是否正确。
2
响应断言界面说明
①HTTP请求,右键,依次选择添加--》断言--》响应断言。
②响应断言界面如下:
Apply to:
Main sample and sub-samples 范围包括主取样器与所有子取样器。
Main sample only 范围仅限于主取样器。
Sub-samples only 范围仅限于所有子取样器。
JMeter Variable Name to use 范围包括使用的Jmeter变量。
测试字段:
响应文本:响应正文。(常用)。
响应代码:响应状态码,比如200、304、404等。
响应信息:响应消息。,比如OK、Not Modified、Not Found等。
响应头:响应请求头。
请求头:请求头。
URL样本:请求的url。
文档(文本):从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。
忽略状态:忽略响应状态。
请求数据:请求的body内容。
模式匹配规则:
包括:如果文本包含正则表达式模式,则为true。
匹配:如果整个文本与正则表达式模式匹配,则为true。
相等: 如果整个文本等于模式字符串(区分大小写),则为true。
字符串:如果文本包含模式字符串(区分大小写),则为true。
否:对断言结果进行否定。
或者:将多个测试模式以逻辑“或”组合起来。
3
实战小例子
①创建线程组、HTTP请求、正则表达式提取器、察看结果树(上面实战例子有写,这里省略创建)。
②HTTP请求右键,创建一个响应断言。我们再来看下响应结果的信息:
{"data": {"mobile": "12345678","id": 500,"rid": 0,"email": "adsfad@qq.com","username": "admin","token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1OTA5MDY3MzAsImV4cCI6MTU5MDk5MzEzMH0.M3CWrgsDUMvnhkprQMBJ1wWY5OKO-mKiOD4EJ2YV4zc"},"meta": {"msg": "登录成功","status": 200}
}
断言的方式可以多种,比如断言msg、status或者msg、status一起断言,甚至你用其他返回的字段也是可以的。
这里我们用msg断言,配置如下:
③运行后,如断言失败,在察看结果树里http请求会红色显示。
四
HTTP信息头管理器
1
使用场景
在接口测试中,有时候需要携带请求头,比如接口需要携带token进行请求,token需要放在请求头里。
2
HTTP信息头管理器界面说明
①线程组,右键,依次点击添加--》配置元件--》HTTP信息头管理器。
②HTTP信息头管理器界面如下:
HTTP信息头管理器比较简单,直接添加请求头信息的键值对就可以。
3
实战小例子
①创建线程组、HTTP请求、正则表达式提取器、察看结果树、响应断言(上面实战例子有写,这里省略创建步骤)。
②线程组下,新建一个HTTP消息头管理器。
在上面介绍正则表达式提取器,我们已经将登录后的token用正则提取出来了,这里直接引用,相当于全局设置了token,其他接口请求时会自动在请求头带上token。
在HTTP信息头管理器引用token如下:
③线程组右键,新建一个http请求,用于请求用户数据列表接口。
④运行后,发现用户数据列表接口在请求头自动携带了token。
总结:本文主要介绍正则表达式提取器、调式取样器(debug sampler)、响应断言、HTTP信息头管理的应用场景及实战。
今日问题:
你在使用Jmeter过程中,常用的元件或插件有哪些?
(欢迎在留言区发表你的看法)
留言福利:
抽取截止至6月8日留言点赞最多的一位幸运er,可获得:Docker微服务架构与实战
(幸运er名单将在下周一推文的置顶留言处公布)
以上
That‘s all
ITester软件测试小栈
往期内容宠幸
1.Python接口自动化-接口基础(一)
2.Python接口自动化-接口基础(二)
3.Python接口自动化-requests模块之get请求
4.Python接口自动化-requests模块之post请求
5.Python接口自动化之cookie、session应用
6.Python接口自动化之Token详解及应用
7.Python接口自动化之requests请求封装
8.Python接口自动化之pymysql数据库操作
9.Python接口自动化之logging日志
10.Python接口自动化之logging封装及实战
想获取更多最新干货内容
快来星标 置顶 关注我
每周一、三、五 07:30见
<< 滑动查看下一张图片 >>
后台 回复"资源"取干货
回复"21天打卡"一起打怪升级
测试交流Q群:727998947
点亮一下在看,你更好看
Jmeter系列之常用组件(二)相关推荐
- Jmeter系列之常用组件(一)
VOL 127 25 2020-05 今天距2021年220天 这是ITester软件测试小栈第127次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- ROS系列:常用组件(一)
文章目录 五.ROS常用组件 1.TF坐标变换 1.1 坐标msg消息 1.2 静态坐标变换 五.ROS常用组件 在ROS中内置了一些比较使用的工具:本章主要介绍ROS内置如下组件: TF坐标变换,实 ...
- Jmeter系列之参数化
VOL 132 08 2020-06 今天距2021年206天 这是ITester软件测试小栈第132次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- jmeter 实际运行线程数达不到设定值_Jmeter技术知识-常用组件实战演示(2020年最新)...
在上一篇:Jmeter系列之简介与环境安装,主要介绍Jmeter简介.环境安装及接口实战.一般在实际接口自动化过程中,会同时包含多个组件共同完成工作. 工欲善其事,必先利其器,以下介绍Jmeter一些 ...
- 大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
三更灯火五更鸡,正是男儿读书时. 小编整理了一些常用的大数据组件,使用场景及功能特性,希望对后浪有所帮助. 分类 名称 简介 功能特点 使用场景 大数据存储 HDFS HDFS是一个分布式的文件系统, ...
- WEB前后端交互原型通用元件库、常用组件、信息输出、信息输入、信息反馈、综合系列、页面交互、首页、分类页、内容详情、用户中心、注册登录、找回密码、元件库、web元件库、rplib、axure
WEB前后端交互原型通用元件库.常用组件.信息输出.信息输入.信息反馈.综合系列.页面交互.首页.分类页.内容详情.用户中心.注册登录.找回密码.元件库.web元件库.rplib.axure原型 we ...
- 21天Jmeter打卡Day18 前置处理器_熟悉常用组件
21天Jmeter打卡Day18 前置处理器_熟悉常用组件 https://www.jianshu.com/p/84866b2315f8 前置处理器使用场景 1.准备测试数据 2.数据加密–BeanS ...
- 【JS组件系列】——表格组件神器:bootstrap table(二:父子表和行列调序)
前言:上篇 JS组件系列--表格组件神器:bootstrap table 简单介绍了下Bootstrap Table的基础用法,没想到讨论还挺热烈的.有园友在评论中提到了父子表的用法,今天就结合Boo ...
- 【大数据入门笔记系列】第一节 大数据常用组件
[大数据入门笔记系列]第一节 大数据常用组件 大数据释义 大数据组件 跳转 大数据释义 近些年来,坊间一直流传着这样的言论:"大数据时代,人人都在裸奔".对于外行人来说,对于&qu ...
最新文章
- Wireshark如何选择多行
- Android的Intent你知道多少?
- 导致oracle 控制文件坏,异常断电导致ORACLE控制文件等受到破坏的处理
- 【跃迁之路】【522天】程序员高效学习方法论探索系列(实验阶段279-2018.07.12)...
- 和css3实例教程_最好CSS和CSS3教程
- c++ stl 容器 迭代器 stl用法示例
- .net post提交后接收返回数据_读完这一篇IT程序员终于明白post和get的区别
- 使用nagios监控oracle
- Google啊谷狗,你是在考验中国人的智商还是探测中国人的情商?
- matlab神经网络(二)-bp神经网络,MATLAB神经网络(2) BP神经网络的非线性系统建模——非线性函数拟合...
- JNI java.lang.UnsatisfiedLinkError
- 打造利器Qt Creator:代码todo工具的使用
- 第三方魔兽金币交易平台的影响力会很快地褪去
- Python4Delphi 安装使用注意
- 20200528 前端开发日报
- tplink 2.4g弱信号剔除_路由器信号分为2.4G和5G,这两种信号有什么区别
- 试图加载不正确的程序。(异常来自HRESULT:0x8007000B)的处理方式
- CentOS 7下安装pptp服务端手记
- 根据上面的products列表写一个循环,不断询问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,终用户输入q退出时,打印购买的商品列表。
- 关于图片轮播图的一个简单实例 以及实例中发现问题
热门文章
- Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64
- C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨
- 机器学习与计算机视觉(计算机视觉的嵌入式平台)
- 随想录(ccpp之间的相互调用)
- 用汇编的眼光看C++(之class构造、析构)
- fread python有没有_将C的fread转换为python,没有得到预期的输出
- java 注解原理_在java中实现组合注解原理分析(注解继承)
- java递减_关于Java中递增和递减运算符的有趣事实
- imx6 android6.0.1,mfgtool刷写i.MX6 android6.0版本失败
- linux下vhd win10,利用win10纯净版系统的VHD虚拟硬盘安装win10系统的方法