码迷,mamicode.com
首页 > 其他好文 > 详细

接口测试工具之JMeter(1)

时间:2018-08-15 15:33:58      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:日期格   9.png   pat   windows   text   情况下   dom   文件内容   bsp   

接口测试工具之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:登录接口需放在金币充值接口前面

接口测试工具之JMeter(1)

标签:日期格   9.png   pat   windows   text   情况下   dom   文件内容   bsp   

原文地址:https://www.cnblogs.com/HathawayLee/p/9481588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!