本文主要介绍在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中测试接口的更多相关文章

  1. Jmeter如何测试接口

    现在对测试人员的要求越来越高,不仅仅要做好功能测试,对接口测试的需求也越来越多!所以也越来越多的同学问,怎样才能做好接口测试? 要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几个方面去分析问题 ...

  2. swagger-ui中测试接口(enum传值) 报400错误

    swagger-ui中测试接口(enum传值) 报400错误 PriceRuleController: @PostMapping("/update") @ApiOperation( ...

  3. jmeter中websocket接口测试

    一.Websocket协议简介 Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说: HTTP协议: HTTP的生命周期通过 Request 来界定,也就是一个 Request  ...

  4. get、post请求方式在jmeter中使用步骤

    jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...

  5. Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发

    前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...

  6. Jmeter测试接口简单使用教程

    1.         打开 解决  apache-jmeter-2.13  然后进解压后的然后点击bin 文件里面的jmeter.bat  打开jmeter 2.         添加测试组件 1:添 ...

  7. 学习总结——JMeter做http接口压力测试

    JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...

  8. Jmeter测试接口

    文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接 ...

  9. jmeter压力测试中的疑难杂症

    概述 大部分新手在用jmeter做压力测试的时候,对一些性能术语十分模糊,直接导致的后果就是对测试出来的结果数据根本不能理解,更谈不上分析了.今天的文章就着重给大家解释一下压力测试中的一些专有名词 问 ...

随机推荐

  1. 20190104xlVBA_在课表里标记自己的课程

    Sub TagMyCourses() Const HEAD_ROW = 3 With ActiveSheet endrow = .Cells.Find("*", .Cells(1, ...

  2. HDOJ-1156 Brownie Points II 线段树/树状数组(模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=1156 在一张二位坐标系中,给定n个点的坐标,玩一个划线游戏(线必须穿过点),Stan先手画一条垂直的线,然后Ol ...

  3. Vmware安装Kali

    下载软件 破解版的Vmware14 kali(我的是kali-linux-2018.2-amd64) 配置虚拟机 新建虚拟机,选择自定义 虚拟机硬件兼容性 选择虚拟机硬件兼容性为Workstation ...

  4. 『MXNet』第十二弹_再谈新建计算节点

    上一节我们已经谈到了计算节点,但是即使是官方文档介绍里面相关内容也过于简略,我们使用Faster-RCNN代码中的新建节点为例,重新介绍一下新建节点的调用栈. 1.调用新建节点 参数分为三部分,op_ ...

  5. 关于react16.4——上下文Context

    首先我们来聊一聊(上下文)Context. 上下文(Context) 提供了一种通过组件树传递数据的方法,无需在每个级别手动传递 props 属性. 在典型的 React 应用程序中,数据通过 pro ...

  6. python中的apscheduler模块

    1.简介 apscheduler是python中的任务定时模块,它包含四个组件:触发器(trigger),作业存储(job store),执行器(executor),调度器(scheduler). 2 ...

  7. 【LeetCode】N数和

    1. 3Sum 给定一个无序数组(可能存在重复元素),是否存在三个数之和为0,输出所有不重复的三元组. e.g. 给定数组 [-1, 0, 1, 2, -1, -4], 结果集为:[ [-1, 0, ...

  8. Utils--前台调用后台接口工具类

    Utils--前台调用后台接口工具类 package com.taotao.manage.httpclient; import java.io.IOException; import java.net ...

  9. Python线程二

    转自:https://www.cnblogs.com/chengd/articles/7770898.html 1. threading.Lock() import threading balance ...

  10. python删除指定路径的文件

    import os            import glob                        path =imgDate_listResult            for infi ...