jmeter中测试接口
本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明:
1、jmeter简介
2、jmeter怎么做接口测试
3、jmeter进行参数化的几种形式
4、jmeter中处理乱码方法
5、jmeter中如何做接口关联
6、jmeter中如何做断言
7、jmeter中如何简单的做压测
1、1 jmeter
jmeter是Apache公司基于java开发的一款开源压力测试工具,体积小,功能全,是一个轻量级的测试工具,运行时,必须安装jdk,jmeter是免安装的。
需要进入到jmeter的bin目录下,打开jmeter.bat,就开启了jmeter

2、1jmeter中做http接口的步骤
步骤一:添加线程组(右键测试计划--添加--Thread--线程组)

步骤二:创建一个http请求(右键线程组--添加-Sample--http请求)

步骤三、在http请求中写入接口url,路径,请求方式,参数

步骤四:添加结果树(右键线程组--添加--监听器--察看结果树)

步骤五:运行脚本,察看结果

2、2 接口中参数是文件类型的
如果接口要上传文件,在jmeter这样进行设置:
参数传值时,从Parameters切换到File Upload
点击浏览,选择要上传的文件
参数名称:输入接口文档中要传入的参数名称

如果运行时,提示MIME不能为空,就给该参数传一个“”test“”的值
3、1jmeter进行参数化的几种形式
参数化是干什么的?就是在调用接口的时候,有入参,参数是经常变换的,就需要把每次都变的值提前设置好一些值,这样调用的时候就不用每次都修改了。
第一种:函数 助手
点击选项--函数助手对话框,进入到函数助手的页面

在函数助手的页面中,功能选择—Random,范围内最大值和最小值,都输入完成后

点击生成,生成一个函数字符串,

复制函数${__Random(1,9999,)}到入参位置

设置循环次数为5次,点击允许,查看结果,显示允许5次

第二种,用户自定义函数
线程组右键--添加--配置元件--用户定义的变量

然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。

在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。

第三种,从文件中读取数据,进行参数化
文件读取就是事先写好一些数据,然后从文件中读取,支持txt和csv格式的文件
步骤一:右键http请求--添加--配置元件--csv Data Set Config

步骤二:创建一个存储数据的.txt或csv结尾的文件,里面以列的形式存放参数的值,如果有多个参数,就用空格或逗号进行隔开

步骤三:设置csv Data Set Config中的参数值

各个字段详解:
:参数化文件的路径,一般是文件的绝对路径;如果只写文件名的话,就把文件放在jmeter的bin目录下
:参数的字段的名称:如果有多个参数,就用逗号隔开,传入参数的时候就用${name}形式进行传参
:如果有多个参数需要参数化的话,中间用逗号隔开或者空格,和参数化文件中的一致
:假如参数用完后,要不要从头开始取,true是从头取,false是不从头取
:参数用完成后,要不要停止,和recyle on EOF 配合使用
步骤四:都设置完成后,在接口中是如何传参的,${name},name就是csv Data Set Config定义的参数名称

4、1 jmeter中处理乱码方法
第一种:jmeter返回中文乱码
1、在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把sampleresult.default.encoding =utf-8 加到最下面
2、重新打开jmeter
第二种:jmeter bodydata里面的中文乱码
1、在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把jsyntaxtextarea.font.family=Hack加到最下面
2.重新打开jmeter
第三种:向数据库中插入数据时,中文若是乱码,就设置content-encoding=utf-8

5、1 jmeter中如何做接口关联
关联就是获取返回值,然后保存起来,给别的请求使用,或者做一些其他的处理
比如登录接口和抽奖接口相关联,选设置登录接口,在登录接口处添加关联

设置json path,获取几个参数名,就添加几个json path postProcessor

各个字段的详解:
:关联的参数名称
:从当前接口中获取关联的参数值:接口返回值是
,获取userID的值=$.login_info.userid
在抽奖接口中使用登录接口返回的userid 和sign

6、jmeter中如何做断言
何为断言?它是用来检查返回结果对不对的
用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话,就代表这个请求的结果和我们预期的不一致,我们就可以通过断言来检查返回结果,测试是否通过
设置如下:
右键http请求--添加响应断言

设置响应断言,模式匹配规则选择“”包括“
添加一个响应结果里面返回的数据”

7、1压力测试场景设置
一般在做压力测试的时候,分单场景和混合场景,单场景就是压测单个接口,多场景就是有业务流程的情况下,多接口一起来做操作
单场景:一个请求就可以了
混合场景:多个请求
压测时间:一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或一周,根据具体情况来定


7、2压测结果的查看
右键--添加聚合报告

7、3 查看结果

Lable:每个jmeter的element都有一个name属性
#samples:表示这次请求中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间,默认情况下单个request的平均响应时间
Media:50%用户的响应时间
90%Line:90%用户的响应时间
min:最小的响应时间
Max:最大的响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量--默认情况下表示每秒完成的请求数
KB/SEC :每秒从服务器端接收到的数据量
TPS越大越好,响应时间越小越好
jmeter中测试接口的更多相关文章
- Jmeter如何测试接口
现在对测试人员的要求越来越高,不仅仅要做好功能测试,对接口测试的需求也越来越多!所以也越来越多的同学问,怎样才能做好接口测试? 要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几个方面去分析问题 ...
- swagger-ui中测试接口(enum传值) 报400错误
swagger-ui中测试接口(enum传值) 报400错误 PriceRuleController: @PostMapping("/update") @ApiOperation( ...
- jmeter中websocket接口测试
一.Websocket协议简介 Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说: HTTP协议: HTTP的生命周期通过 Request 来界定,也就是一个 Request ...
- get、post请求方式在jmeter中使用步骤
jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...
- Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发
前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...
- Jmeter测试接口简单使用教程
1. 打开 解决 apache-jmeter-2.13 然后进解压后的然后点击bin 文件里面的jmeter.bat 打开jmeter 2. 添加测试组件 1:添 ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
- Jmeter测试接口
文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接 ...
- jmeter压力测试中的疑难杂症
概述 大部分新手在用jmeter做压力测试的时候,对一些性能术语十分模糊,直接导致的后果就是对测试出来的结果数据根本不能理解,更谈不上分析了.今天的文章就着重给大家解释一下压力测试中的一些专有名词 问 ...
随机推荐
- Centos7 下coreseek的安装
Coreseek介绍: Sphinx默认不支持中文索引及检索,基于Sphinx开发了Coreseek 全文检索服务器,Coreseek应该是现在用的最多的Sphinx中文全文检索,它提供了为Sphin ...
- 终于可以从百度云上BOS读取数据到本地了
终于可以从百度云上BOS读取数据到本地了
- 【JS】【1】JavaScript屏蔽Backspace键(避免点击后页面产生回退)
前言: 1,参考资料:JavaScript屏蔽Backspace键 - 孤傲苍狼 - 博客园(http://www.cnblogs.com/xdp-gacl/p/3785806.html) 2,参考的 ...
- css单位分析、颜色设置与调色板
CSS单位分析 px:单位代表像素,1px代表一个像素点. %:设置子元素为父容器的占比. em:代表该元素中一个字体所占字符,常用在文字首行缩进.其具有继承性. rem:始终代表html中的字符所在 ...
- csu oj 1342: Double
Description 有一个由M个整数组成的序列,每次从中随机取一个数(序列中每个数被选到的概率是相等的)累加,一共取N次,最后结果能被3整除的概率是多少? Input 输入包含多组数据. ...
- java使用线程设置定时任务
private static int a=0; public static void main( String[] args ) { timer(); } public static void tim ...
- java动态代理机制
首先了解代理设计模式,其思想是为其他对象提供一种代理以控制对这个对象的访问. java动态代理就是遵循这种思想,spring中的AOP实现原理就是java的动态代理. 在java的动态代理机制中,有两 ...
- HTTP及RFC解析。
HTTP协议描述的是发送方与接收方的通信协议,通过两方的自觉遵守而存在,当然有不少的浏览器并没有百分百遵守这份协议.HTTP是运行于应用层的协议,基于TCP协议而运作.基本上是客户/服务器对答模式,其 ...
- lucene 根据 id 获取索引内容(C# / .NET)
封装代码如下: public MakerArtiImodel GetIndexModelById(int id) { string indexPath = StrHelper.rootPath + & ...
- OCP知识点讲解 之 检查点队列与增量检查点
原创 http://blog.chinaunix.net/uid-26762723-id-3271558.html 检查点的主要目的是以对数据库的日常操作影响最小的方式刷新脏块.脏块不断的产生,如何将 ...