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 安装PHP7的redis扩展:
phpredis-4.2.0.tar.gz:下载:wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz $ tar -z ...
- javascript使用误区(switch、this)
1.switch 语句会使用恒等计算符(===)进行比较: 以下实例由于类型不一致不会执行 alert 弹窗: var x = "10"; switch(x) { case 10: ...
- git 提交代码场景
1.首次提交代码到master git init git add . git commit -m '' git remote add origin +address git push -u origi ...
- Remove Duplicates From Sorted Array leetcode java
算法描述: Given a sorted array, remove the duplicates in place such that each element appear only once a ...
- PostgreSQL数据库单机扩展为流复制
primary:10.189.102.118 standby:10.189.100.195 1. 配置ssh互信机制 在primary主库执行 $ ssh-keygen -t rsa $ cp ~/. ...
- Async:简洁优雅的异步之道
前言 在异步处理方案中,目前最为简洁优雅的便是 async函数(以下简称A函数).经过必要的分块包装后,A函数能使多个相关的异步操作如同同步操作一样聚合起来,使其相互间的关系更为清晰.过程更为简洁.调 ...
- 2015-09-17html课程总结2+了解css
7.多媒体 ①滚动字幕 <marquee>滚动的内容...</marquee> ②属性:align-----对齐方式(top middle bottom) scroll--- ...
- PHP指针相关函数
1.each each — 返回数组中当前的键/值对并将数组指针向前移动一步 $arr = array("one", "two", "three&qu ...
- 【转】MVC5学习笔记 BindAttribute
// POST: Movies/Create // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 // 详细信息,请参阅 http://go.microsoft.com/fwlink/?L ...
- etymon word flower bee apiary forget out~1
1● anth 2● flower 花 1● ap 2● bee 3● apiary 养殖场