搭好环境后就开始写jmeter脚本
第一步:添加线程组
测试计划···添加 ···threads(users)···线程组
4f150e3df2b835c551f06c0509def48.png
第二步:在线程组中添加http请求
添加···Sampler···HTTP请求
2d8fbeed51c826ebb5b9321b5bc0566.png
第三步:填写http请求的相关数据
服务器名称或ip:{填写接口地址即可}【注意,这里是接口地址,不是网站地址】
路径:ip+接口路径
协议:
方法:
内容编码(content encoding):utf-8(中文编码)
登录接口的话一般会需要再添加一个http信息头管理器,如图
没有添加这个头信息运行时会报错
bda4692fe595f6331b7ededac542f03.png
信息头中的数据可以去抓包获取
86e66ff156fc8e97c226c1b7bcd18ba.png
抓到了头部的一些信息,但是这么多每个都要加上去吗,答案是no
搞清楚登录时需要用到的放上去就行,我这里就加了一个
2b0529ec104c7f236b3805f88fe9e39.png
下面http请求内容的图来了
d9da51276a7387d1e8d0080df471c0f.png
填好了之后需要看是不是对的,请求有没有通。这个时候可以添加一个察看结果树
第四步:添加察看结果树
d56272912cd29ecc20df999450a6def.png但是察看结果树有个不好的地方在于,接口通了但是没有成功的情况下不会报错,会显示成功例如这样:
c9a691aae924d4ff915f61697081f0c.png
明明返回了5010,察看结果树竟然没有报错,震惊
但是不要慌张,我们可以添加一个相应断言来解决这种情况
上面是"code":5010,那一般情况下接口返回200才是成功
第五步:添加响应断言
715368501849d45e151519cf3805e06.png其余的不用改,只需添加上检查点的唯一标识即可,比如说接口返回的200
a571d076be5e2c90b7d835f4c3cbd54.png
这个时候再重新运行刚刚的接口,就报错了,如下 8807ca4537d5cf7c632ff50d53b5de6.png
还告诉了断言失败信息:响应数据中没有200这个唯一标识
那接口没有返回200是为什么呢,为什么上面的登录接口又可以呢,答案是每个系统为了确保安全
登录之后的每一步操作都有一个cookie值
每位用户有不同的cookie
而且这玩意儿会过期
有些是退出后就过期
有些是过了时间就过期
具体要看接口怎么写的
cookie值可以抓包得到,那么这里我抓了一个登录接口的包,获取到了本次操作的cookie值
43481ce1545c9fe561f071ce9521bcf.png
这个图是一个叫做charles的抓包工具,抓包工具使用请见另外一篇文章
知道了cookie的值之后在需要添加cookie的接口添加一个http cookie管理器,如图
6f606f59f001e7b5bec1b21f09d4654.png
然后填上该接口的cookie值
58b9ee169b1f1bfa3ac2ad603d6f137.png
这个时候再次运行,成功了 cc0f8c1a483d88d5ebdb6b7c344f5a4.png
但是这个响应是啥,一堆堆的,不是很好看这个时候我们把这里的格式改为json
325fb1971c08e818059ce5af56ede37.png
31383938d530e6646b556ea653bb830.png
顿时光明了,我还要再当100年测试!
如果是一个流程的话,那么添加一个http请求就要填一次ip加路径,多来几个一天时间就浪费了,而且接口前面的ip地址一般都是一致的,那么有一种方式可以参数化这些东西,省事省力
第六步:在线程组下添加一个用户定义的变量 2180915af0b82f4f59c95d8cc4a07d5.png
内容可以这样填,比如我这里是想参数化ip
44dff8e891122769069b3406b59f495.png
我这里的名称是ip,那下次添加http请求时直接调用这个ip即可
如图
c80b6f2b8a3ef00ae1548e2ed2cf130.png
如果查看结果树不太明显的话还可以添加多几个用来分析结果数据
58cff9002e0eca185f5c74687bab1c3.png
07bd84b09273058764b0b8651b4982a.png
然后就是循环了,这些东西全部调好之后,开始测试,在线程组中填写循环次数
d66e9630b44474b2e2d6d88b7764db1.png
然后就静等结果出来,还没写完,我还要研究下怎么操作更方便,后续会再更
自动更新cookie方法:
jmeter配置文件中可以设置自动保存cookie变量,具体如下:
1、在bin目录下的jmeter.properties,搜CookieManager.save.cookies,把后面的值改为true,去掉行首的#号,然后保存后重启jmeter。
2、在需要取Cookie的线程里添加一个Http Cookie管理器(管理器可以默认为空,但是一定要添加,否则是不会存储cookie变量的)
网友评论