本文将以某人才招聘网站为例子,通过一系列由简入深的一些HTTP接口测试的实例来练习如何讲JMeter应用到接口测试和功能测试中。
前言 JMeter 基本配置
1. 创建一个新的Test Plan并保存。
2. 新建一个Thread Group, jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。
不管是功能测试还是性能测试,可以在调试脚本的时候选择默认设置,如下所示
。如果是性能测试,可以在后期脚本都调试通过后再添加线程的数目。
3. 新建一个HTTP Request Defaults
在该Thread Group内的的其它HTTP Request和该Default 的配置一样就无需进行配置,比如server name,只需要配置特定的参数
4. 新建一个HTTP Cookie Manager
也是在Config Element里面,如上图。
5. 新建一个HTTP Header Manager
也是在Config Element里面,如上图。
6. 添加View Results Tree
一 用HTTP Request GET去访问一个网页
本文的所有实例都是基于以下这个网站进行的,注册登录都不需要验证码非常适合我们练手。
由上图可见,hostname不需要填,只需要添加路径即可。
点击运行后可以到查看运行结果如下:
二 用HTTP Request GET去登陆一个网页
这个GET和上面例子相比多了传入的参数。
已有的用户名:13874009226,密码:1111,请在JMeter上配置HTTP Request GET来测试该网站的登陆接口。
三 用HTTP Request POST去登陆一个网页
用户名和密码同上,请在JMeter上配置HTTP Request POST来测试该网站的登陆接口。
四 如何创建一个新用户
通过抓包,知道创建一个新用户需要发送2个HTTP Request,第一个是check这个用户是否存在,第二个是真正的注册用户的api。
五 在创建新用户时加入判断条件
可以通过判断第一个HTTP Request的结果,为1时则说明该用户已创建就不要再去重复创建了。
可以利用Regular Expression Extractor和If Controller来一起实现。
JMeter正则表达式,可参考这篇博文:Jmeter关联,正则表达式提取器使用
a. 引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。
b. 正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
c. 模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
d. 匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
e. 缺省值:如果参数没有取得到值,那默认给一个值让它取。
六 使用用户自定义变量
pending
七 HTTP Requests之间互相关联
pending