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

jmeter测试接口

时间:2018-03-12 18:51:01      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:入参   登陆   jar   语句   .com   监听器   自定义   更新   运行时   

 

jmeter可以做各种接口请求,还可以将所有接口流程化,写好测试脚本后,同时运行所有接口。

一、get请求

  示例:首先,新建一个线程组

技术分享图片

在线程组上,新建一个http请求(接口请求)

技术分享图片

 

为了对接口请求结果观察,再添加一个监听器:查看结果树

技术分享图片

对http请求进行编辑,填写对应的信息,运行

 技术分享图片

或者参数写在parameters中

技术分享图片

 

 

点击运行,查看结果树,点击对应请求查看结果。

响应数据中有乱码,解决办法:将jmeter安装目下bin目录下的jmeter.properties打开,将sampleresult.default.encoding=ISO-8859-1替换为sampleresult.default.encoding=utf-8,同时将该行前的#去掉,重启jmeter即可

技术分享图片

 

 

 二、post请求

  需要将请求方法改为post,参数按要求填写到parameters中,或者body data中(如果入参事json数据,填写到body data中)

技术分享图片

填好后,点击运行--查看结果树。

如果body data中json数据写中文有乱码时,如下,解决办法:jmeter安装目录下bin\jmeter.properties中修改默认字体:#jsyntaxtextarea.font.family=Hack 改 jsyntaxtextarea.font.family=宋体 去掉#,重启jmeter

技术分享图片

 

三、添加cookie

  有些接口的操作,前提必须是已经登录,这时就需要在接口中添加cookie。在上面登录接口测试中,响应结果中会包含一个cookie,将他添加到需要添加的接口中即可.可用正则表达式提取,也可用插件提取

  用插件提取:

1、先从网上下载一个插件https://jmeter-plugins.org/wiki/JSONPathExtractor/,下载后解压以后将lib和lib/ext中的jar包放到安装目录的lib文件夹下重启jmeter,

在登录请求下添加后置处理器--json path extractor,然后将登陆响应数据中对应的cookie用该插件存起来,如下:

技术分享图片

 

技术分享图片

然后在  学生金币充值  请求中添加cookie管理器(在特定请求下添加,则cookie只作用于该请求,如果放到线程组下,则作用于该县城租下所有请求)

技术分享图片

技术分享图片

 

 运行即可成功。

用正则表达式提取:在登录请求后,添加正则表达式提取器

技术分享图片技术分享图片

 

技术分享图片

 

学生金币充值仍需添加cookie。然后运行。成功。

四、添加header

在接口请求中需要添加请求头携带信息时,可添加信息头管理器,然后再信息头管理器中填写相应内容即可。

 

技术分享图片

 

 五、上传文件

jmeter中请求需要上传文件

技术分享图片

 

 六、参数化

参数化可以让用户在脚本运行时,选取不同的数值进行代入,更接近实际。同时当某一数值在脚本中多次使用时,用参数化可以避免改动多处情况。只需要改动参数对应的取值,即可同步更新整个脚本中对应参数 

1、文件参数化

 例如:正常注册接口,一次只能注册一个用户,如果用上参数化,将需要注册的信息都放到文件里,在脚本运行的时候可以一个一个连续读取,那么就能同时注册多个用户。这里对应的参数都用一个变量代替,而变量的值来源于参数文件。

技术分享图片

这里用csv文件对参数进行参数化: 首先需要准备好文件。对应参数填写数据。

 技术分享图片

 

准备好数据以后就可以使用了。在请求上添加一个csv data set config

技术分享图片

 

 技术分享图片

 

 技术分享图片

这部分已经配好了,因为文件中有6条数据,如果想要6条数据都被执行的话,就要执行6次,所以还需要在线程组处进行配置

技术分享图片

 

 到此配置完成,点运行成功。

2、用户自定义变量参数化

 例:将服务器ip地址进行参数化:

 1、在线程上添加用户自定义变量

技术分享图片技术分享图片

接下来所有用到服务器ip地址的地方,都可以用${host}代替

技术分享图片

 

 3、函数助手

jmeter提供了一些函数,可以帮助用户对进行参数化

技术分享图片

技术分享图片

 

 比如在刚才的username后随机增加一个数字,就可以这样使用,直接复制即可取值

技术分享图片

函数助手中提供了很多好用的函数,需要的话可以一一实验

七、关联

因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联。 

一般关联用于保存动态的数据。比如一个请求要用到登录的sessionid,但是因为每次登录sessionid都是会变化的。这时候就可以用关联的方法将sessionid提取出来。然后再在请求中引用。

上例写的添加cookie时,就是用到关联技术保存cookie。然后再引用。

 八、断言

断言就是用来验证结果是否正确。可以对响应结果中做一些判断

比如登录的响应数据中包含sign关键字。我们就可以添加一个断言,验证结果是否含有sign

技术分享图片

技术分享图片

上面示例表示结果中包含 sign。如果结果中包含,则断言通过;如果结果中不包含,则会显示断言失败。可以更好地找到失败原因。

技术分享图片

九、jmeter访问数据库

jmeter不能直接访问数据库,必须先添加对应的jar包。

打开测试计划页面,添加需要访问数据库对应的jar包

技术分享图片

在对应的线程组或线程上进行数据库配置

技术分享图片

 

 按照如下图示,对数据库进行配置

 技术分享图片技术分享图片

配置完成后,可对数据库进行操作。新建一个jdbc request

技术分享图片

query type选择select,只能写select语句

技术分享图片

选择callable  增删改查语句都可以写

技术分享图片

 

jmeter测试接口

标签:入参   登陆   jar   语句   .com   监听器   自定义   更新   运行时   

原文地址:https://www.cnblogs.com/bendouyao/p/8550461.html

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