jmeter普通的接口测试
摘自:后知者。https://www.cnblogs.com/houzhizhe/p/6838731.html
jmeter可以做接口测试,其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。
一.JMeter对各种类型接口的测试
默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59);本地配好了JMeter 3.x的运行环境;
打开JMeter,添加一个线程组和该线程组的查看结果树。以下的几种接口请求我们都在这个线程组中添加和运行。
如果你的JMeter返回数据是乱码,解决办法是,在JMeter安装路径的bin目录下,打开文件jmeter.properties,把Sampleresult.default.encoding的值改为 utf-8 即可。
1. 普通的以key-value传参的get请求
e.g. 获取用户信息
添加http请求;填写服务器域名或IP;方法选GET;填写路径;添加参数;运行并查看结果。
2. 以Json串传参的post请求
e.g. 获取用户余额
添加http请求;填写服务器域名或IP;方法选POST;填写路径;在参数区域选Body Data标签;写入Json串参数,注意Json格式;运行并查看结果。
*注意:
Json传参时,往往参数相对复杂,规模较大,很多时候是Json串再嵌套Json串,在写入body的时候如果哪里格式不对会影响传参,而JMeter本身是不能对Json进行格式校验的(Postman可以进行简单的Json校验),我们可以借助这个网站来校验你的Json串的格式,www.bejson.com 再把确保格式正确的Json串填入body。
3. 请求时需要http权限验证
e.g. 修改用户余额
添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;
添加授权管理器,右击线程组->添加->配置元件->HTTP授权管理器;
打开HTTP授权管理器,在基础URL添加路径;填写用户名、密码(接口文档会给出);添加域即请求的服务器域名或IP;其他默认;
运行请求并查看结果。(该接口暂时有问题请求返回500,只要掌握需要权限验证的接口如何做就好)
4. 请求时需要添加请求标头
e.g. 获取用户信息2
添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;
添加HTTP信息头管理器,右击线程组->添加->配置元件->HTTP信息头管理器;
打开HTTP信息头管理器,参照接口文档填写好header信息;
运行请求并查看结果。
5. 请求时需要添加Cookie
e.g. 修改用户余额2
添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;
添加HTTP Cookie管理器,右击线程组->添加->配置元件->HTTP Cookie管理器;
打开Cookie管理器,参照接口文档填写好Cookie信息;
发送请求并查看结果。
6. 请求通过某个接口上传文件
e.g.上传文件
添加http请求;填写服务器域名或IP;方法选POST;填写路径;在参数区域选Files Upload标签,添加文件全名(包含绝对路径,也可以点击浏览按钮添加),写入参数名;发送请求并查看结果。
JMeter的参数化
1. 指定参数值
这种方法常用来解决线程组中多个请求共用相同的数据,比如我们以上所有请求都有相同的IP地址,当地址改变时可以一改全改。
添加用户定义的变量,右击线程组->添加->配置元件->用户定义的变量;
打开用户定义的变量,添加变量,写好名称和值;
脚本中用到该值的所有地方都可以引用这个变量名了,引用变量的格式为 ${变量名};
2. 借助函数生成参数
测试过程中,有时候数据不适合被指定,可选择借助函数来生成,以下是最常用的几种。
- 用函数生成随机数:(__Random)
在Jmeter中点击 选项->函数助手对话框;
在弹出的对话框中选__Random,填写随机数的范围,点击生成按钮,就看到你需要的字符串了;
尝试在请求中使用生成的随机数,把刚拷贝的字符串粘贴到请求的参数里;
发送请求,查看请求中参数值的情况,参数生效了。
- 用函数生成当前时间:(__time)
- 用函数生成通用的唯一识别码:(__UUID)
3. 文件传参
用于读取在文件中维护的参数,如参数文件内容如下;
注意,Jmeter读取文件总的参数是从第一行就开始了的,千万不要犯下面的错误。
在Jmeter中右击线程组->添加->配置元件->CSV Data Set Config;
打开设置窗口,写入参数文件的全名(含绝对路径),变量名,Delimiter就用默认的逗号,表示在准备参数文件时参数表的列之间用逗号隔开;
在请求中引用参数时应该是酱紫的:${username} ${pwd},用它们来顶替对应的参数值。
4. 关联传参
在线程组内,当你想用一个请求的响应结果作为另一个请求的入参时就需要用到关联。
- 用正则表达式关联
思路是先从某个请求的响应数据中提取你需要的值,在把这个值在另一个请求中入参,操作如下:
在需要被提取响应数据的请求下添加正则表达式提取器,右击添加->后置处理器->正则表达式提取器;
在正则表达式提取器中填写 引用名称,不说也知道用途;正则表达式,最简单的办法是在响应数据中把要提取的目标值左右若干字符包含目标值的一行拷贝出来,粘贴到正则表达式框内,在把目标值用一对小括号替换,括号里用添上合适的匹配符本例如(.*); 注意在响应数据中拷贝时尽量避开需要转义的字符如果不能避开,请转义;模板通常固定填$1$;匹配数字1代表区匹配的第一个值;缺省值是在匹配失败时取得的值,通常用来检查匹配是否成功;
用${age}入参给另一个请求,查看结果传参成功。
- 用Json Path Extractor 插件关联
只针对Json格式的Response 取值,右击请求添加->后置处理器->JSON Path Extractor;
在JSON Path Extractor中填入引用名和JSONPath Expression;
在另一个请求中入参,也和上面的结果一样转参成功。
注意,JSON Path Extractor这个插件只能在Jmeter3.x以上的版本安装。
Jmeter添加断言检查结果
右击请求添加->断言->响应断言;
添加并写入希望在响应结果中看到的内容;
发送请求,查看结果;
jmeter普通的接口测试的更多相关文章
- jmeter做接口测试
jmeter做接口测试有两种方式: 1. 2.
- Jmeter用于接口测试中【接口耦合关联的实现】
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- Jmeter用于接口测试中,关联如何实现
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- 怎样用JMeter做接口测试?
本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...
- 使用jmeter进行接口测试
目录 jmeter介绍 jmeter安装 修改UTF-8 jmeter主要测试组件 jmeter元件作用域与执行顺序 使用Jmeter进行接口测试 jmeter介绍 JMeter是Apache基金会J ...
- 如何用Jmeter做接口测试
Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用的接口.性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库. 前期准备:测试 ...
- 使用jmeter做接口测试----柠檬不萌!
一.乱码解决方案 1.jmeter查看结果树乱码 (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上 sampleresult.default.encoding= ...
- 使用Jmeter做接口测试(学生信息的6个接口)
使用Jmeter做接口测试,案例中涉及到接口有:获取学生信息.登录.添加学生信息.学生金币充值.获取所有学生信息.文件上传. 一.获取学生信息(get请求) 服务器名称或IP:输入被请求服务器的名称或 ...
- 利用Jmeter做接口测试
本文作者:大道测试团队-孙云 1.在安装jmeter之前先配置好JDK,再配置jmeter环境变量. 2.启动jmeter 启动jmeter: 双击Jmeter解压路径(apache-jmeter-3 ...
随机推荐
- windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)
windows server 证书的颁发与IIS证书的使用 最近工作业务要是用服务器证书验证,在这里记录下一. 1.添加服务器角色 [证书服务] 2.一路下一步直到证书服务安装完成; 3.选择圈选 ...
- VS2012 ASP.NET 母版页的创建与使用
在做牛腩新闻公布系统的过程中,须要使用ASP.NET的母版页来抽出全部网页的公共部分,以便更好的复用自己的网页布局和设计. 首先我们来看怎样创建一个新的母版页,例如以下图所看到的: 加入之后,例如以下 ...
- nginx负载均衡向后台传递參数方法(后端也是nginxserver)
做了一个站点是用nginx 做的负载均衡.后端也是多个nginxserver 遇到了一个问题.当做SSL支持时 前端nginx分发到 后端nginx后就成 http形式了(这样后台php用$_SERV ...
- mac 终端经常使用命令(三)
基本命令 1.列出文件 ls 參数 文件夹名 例: 看看驱动文件夹下有什么:ls /System/Library/Extensions 參数 -w 显示中文,-l 具体信息. -a 包含 ...
- lua-5.2.3编译问题记录"libreadline.so: undefined reference to `PC'"
作者:zhanhailiang 日期:2014-10-21 [root@~/software]# cd lua-5.2.3 [root@~/software/lua-5.2.3]# make linu ...
- cocos2dx游戏开发学习笔记2-从helloworld開始
一.新建project 具体安装和新建project的方法在cocos2dx文件夹下的README.md文件里已经有具体说明,这里仅仅做简介. 1.上官网下载cocos2dx-3.0的源代码.http ...
- [办公自动化]如何让excel图表标签中显示最新值数据
同事做了一张excel图表,希望最新的数据显示数据标签,其他都不显示.并且当单元格的数据新增加时,这个标签要能自动更新. 这里需要用到公式,获取到这个最新值.在b2输入公式=lookup(9e+307 ...
- EL 隐含对象
EL 隐含对象(11个):
- Massive Data Mining学习记录
第一周: 学习PageRank, 知识点:每个节点的权值由其他节点的投票决定,所有节点的权值和为1 当节点很多时候必须转换成矩阵运算来计算节点的最终值,由马尔可夫链可以证明,这个值可以迭代得到 问题: ...
- caioj1472: 后缀自动机1:多个串的LCS
子串母串跑合并答案 一个点的fail的dep是比任意一条根到这个点路径长度要小的. 那么改就可以直接来了. #include<cstdio> #include<iostream> ...