Jmeter中参数化、断言、关联、正则表达式的用法

  • Post author:
  • Post category:其他

本文将通过举例“查询天气接口”,地址是
http://www.weather.com.cn/来讲解Jmeter中如何参数化、断言、关联、正则表达式的用法。

手动查询天气的步骤如下:

(1)打开浏览器,打开http://www.weather.com.cn/
(2)在搜索框中,输入城市名称“广州”,单击查询按钮或者回车,就能查询到广州的天气。

接下来,我们把天气查询的例子做成自动化。

一、Fiddler抓包分析,提取请求接口信息

步骤:
1、启动Fiddler。(可以先在菜单栏中单击Rules > Hide Image Requests,把图片的包隐藏掉,这样就会少了一些不相干的包,减少干扰)
在这里插入图片描述
2、打开浏览器,输入url :http://www.weather.com.cn/ , 回车, 在搜索框中输入城市名称“广州”,单击查询按钮。(在写此篇文章的时候,搜索按钮点击好像没反应,所以就直接 按键盘enter键,回车)
在这里插入图片描述
回车之后,跳转到新的标签页面,查询到了广州的天气。
在这里插入图片描述
3、回到Fiddler,查看Fiddler抓到的数据包,发现有特别的多请求。这时候就需要我们去分析,找到关键的请求。
①第1个,查询,使用的是get请求方式,那么搜索的城市名称,肯定是放在url后面的。
②第2个,在步骤2中,查询后跳转到新的页面,是真正获取城市的天气数据。
在这里插入图片描述
4、分析请求数据包
在这里插入图片描述

二、使用Jmeter模拟发送请求,察看结果

通过以上的分析之后,我们开始使用Jmeter来模拟发送请求。
步骤如下:

(一)获取城市地区的代码

1、启动Jmeter,新建一个线程组。
在这里插入图片描述
2、在线程组下,添加取样器-HTTP请求,将HTTP请求命名为“HTTP请求_GetCityCode”,填写请求数据,包括协议、请求方法、服务器名称、路径、端口(默认80,不用填)
在这里插入图片描述
在这里插入图片描述
3、添加HTTP信息头管理器,将在fiddler中捕获的信息头复制粘贴过来。(一定要包含referer,它是用来追踪来源的。)
在这里插入图片描述
在这里插入图片描述
4、再添加一个监听器> 察看结果树
在这里插入图片描述
5、执行脚本,察看结果。
在这里插入图片描述

补充:对城市名称进行参数化

在这里,我们可以对城市名称进行参数化,这样就可以通过更改参数的值,就可以查询多个城市的天气了。
步骤:
①首先添加一个配置元件> 用户定义的变量。
在这里插入图片描述
②添加变量名称city和值“广州”。
在这里插入图片描述
③回到HTTP请求_GetCityCode,将路径的城市名称改为引用变量${city}。
在这里插入图片描述
④再次执行脚本,察看结果,同样可以请求成功。

(二)正则表达式获取城市地区的代码

在(一)的响应数据中,我们可以得到城市地区的代码,那怎么去获取它呢?
我们在这里,可以添加一个后置处理器> “正则表达式提取器” 来提取城市地区的代码。
在这里插入图片描述
在这里插入图片描述

正则表达式的学习,可以参考https://deerchao.cn/tutorials/regex/regex-1.htm
测试所写的正则表达式,是否正确。
在这里插入图片描述

(三)获取天气(用到关联)

现在,我们就新建第二个HTTP请求,命名为:HTTP请求_GetWeather。
在这里插入图片描述
现在,我们脚本全部写好了,再执行脚本,“察看结果树”中就可以察看响应结果。
在这里插入图片描述

(四)添加响应断言,查看断言结果

如果我们要判断HTTP请求_GetCityCode 的响应结果中,是否包含
cityname=广州。则可以添加一个响应断言。
在这里插入图片描述
在这里插入图片描述
添加一个监听器> 断言结果。
在这里插入图片描述


版权声明:本文为weixin_40608713原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。