冒泡泡de可乐
代码都是思想和概念的体现~每多学一点知识,就能少写一行代码~

接口测试工具之JMeter(1)

1.Jmeter简介

  Jmeter是apache公司基于java开发的一款开源压力测试工具,它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用

2.Jmeter使用

2.1 创建http请求流程

1、添加线程组

2、添加http请求

3、在http请求中写入接口url、路径、请求方式、参数

4、添加查看结果树(多个http请求只需添加一个结果树)

5、调用接口、查看返回值

 

PS :解决两个乱码问题方法

jmeter查看结果树乱码

在jmeter的bin目录下找到jmeter.properties这个文件

1、添加上sampleresult.default.encoding=utf-8

2、重启jmeter

jmeter body data里面乱码

在jmeter的bin目录下找到jmeter.properties这个文件

1、添加jsyntaxtextarea.font.family=Hack

2、重启jmeter

 

2.2 get请求

get请求一:

 入参可以放在路径中或在parameters中添加

 

 

 

get请求二:添加Headers

添加Http信息头管理器

 

 

 

 

 

 

2.3 post请求

  post请求一:表单提交

 

 

post请求二:json提交

 

 

post请求三:添加cookie

添加HTTP信息头管理器

 

 

在HTTP信息头管理器中添加cookie信息,cookie值为上述登录接口返回结果中的sign值

 

 

post请求四:上传文件

 

 

2.4 Jmeter参数化

在调用接口的时候,有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦,这时候咱们就把需要经常变的值,改成可以变化的或者是咱们提前设置好的一些值,这样的话,调用的时候就不用每次都改它的值了.

Jmeter参数化的方式有三种

(1)用户定义的变量

这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的

在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。

 

 

调用

 

 

(2)函数生成器

函数生成器可以参照一定的规则生成数据

随机数__Random,可以在你指定的一个范围内取随机值

自增函数__counter

取当前时间__time,不加参数时为时间戳(计算机发明到现在过了多少秒),如果在有一些需要传时间的情况下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss(年-月-日-小时:分钟:秒)

调出函数助手:选项—>函数助手对话框

 

 

注册用户接口:

 

在线程组中将循环次数改为5,即一次调用5次请求,注册5个用户

 

查看结果树:

 

 

 

(3)从文件中读取

文件读取就是事先写好一些数据,然后从文件中读取,比如说学生金币充值接口,将需充值的学生id写在文件userId.txt中,jmeter在做压测时直接从userId.txt中读取即可

从文件中读取的话,三个步骤

1、读取文件

2、取文件内容里面的参数,给它一个名字

3、使用值

 

从文件读取,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的

 

 

 

参数解释:

Filename:文件路径,若只写文件名字需把文件放在jmeter的bin目录中

Variable Names:变量名称,是用户自己定义的(若有多个变量需用Delimiter中定义的符号隔开)

Delimiter:多个变量间用什么符号隔开,默认为英文逗号

Stop thread on EOF:文件中的数据读完之后是否再循环读取,默认为false

 

金币充值接口:

 

第一列为userid,第二列为金币值,中间用英文逗号隔开

 

查看结果树:

 

 

2.5 Jmeter关联

1、 调用第一个接口,然后从这个接口的返回数据里面拿到某个值

2、 放到第二个接口里面来用

例如:金币充值接口

在登录接口中添加jp@gc-JSON Path Extractor

 

 

登录接口的返回值:

 

 

查看结果树:

添加调试工具Debug Sampler,查看详情

 

 

PS:登录接口需放在金币充值接口前面

posted on 2018-08-15 15:15  HathawayLee  阅读(170)  评论(0编辑  收藏  举报