Jmeter接口测试步骤
Jmeter多接口测试性能测试

一、接口业务流程1、获取token接口http://192.168.1.4:9900/rest/getToken/2、获取图片链接口http://192.168.1.4:9900/regist/getImagePath/?token=89bd9d88f4f3421c9e639dfab0c a423c&type=fql返回数据:{"msg": "\u6210\u529f", "code": 0, "detail": {"image_path":"/images/regist/20160822/img1471837595.25.jpg"}}3、获取图片验证码接口http://192.168.1.4:9900/images/regist/20160822/img1471850521.18.jpg4、获取注册结果接口http://192.168.1.4:9900/regist/imageView/?imagecode=zds4&phone=182********&t oken=89bd9d88f4f3421c9e639dfab0ca423c&type=fql二、JMETER的使用1、基本操作1.1、新增测试计划新增线程组,接着在该线程组下方新增4个“HTTP请求”(添加-Sampler-HTTP请求),再在该线程组下方添加“察看结果树”(添加-监听器察看结果树)。
也可以在每个HTTP请求下方添加“察看结果树”,方便找到需要正则或参数化的数据。
一个完整的测试计划诞生了,如下图2.1所示图2.11.2、配置HTTP请求以上图中的“HTTP请求01”为例进行说明。
在HTTP请求窗口中的Basic标签页面上输入服务器名称或IP、端口号和路径(路径URL地址端口号后面的),其他默认,如下图2.2-1所示。
接口测试(jmeter和postman接口使用)

接⼝测试(jmeter和postman接⼝使⽤)接⼝测试基础知识接⼝测试主要⽤于检测外部系统与系统之间以及内部各个⼦系统之间的交互点。
把前端(client)和后端(server)联系起来,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
更早的进⼊介⼊测试能提⾼对应效率,当后端和前端定义好接⼝以后可以直接对系统的逻辑进⾏测试,⽽不⽤等待后端开发完后在进⾏测试。
接⼝请求⼀般⽤HTTP的请求,⽅法⼤多数为:GET, POST ,HEAD,OPTIONS,等其他⽅法。
POST请求:向指定资源提交数据进⾏处理请求,数据被包含在请求体中。
POST请求可能会导致新的资源的建⽴、已有资源的修改。
(通常⽤来发送数据)。
HEAD请求:类似于get请求只不过返回的响应中没有具体的内容,⽤于获取报头。
OPTIONS请求:允许客户端查看服务器的性能。
接⼝调⽤传参⽅式:key-value参数形式,Json串传参形式。
key-value参数:把参数拼接在url的后⾯由?相连,多个参数之间⽤&相连。
Json串传参:需要在请求的body写中,⼊Json格式参数。
Cookie和session区别:会话(Session)跟踪是Web程序中常⽤的技术,⽤来跟踪⽤户的整个会话。
常⽤的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定⽤户⾝份Session通过在服务器端记录信息确定⽤户⾝份1.存取⽅式不同:cookie数据存放在客户的浏览器上,session数据放在服务器上。
2.隐私安全:cookie不是很安全,别⼈可以分析存放在本地的cookie并进⾏cookle欺骗考虑到安全应当使⽤session。
3.有效时间:session会在⼀定时间内保存在服务器上。
当访问增多,会⽐较占⽤你服务器的性能考虑到减轻服务器性能⽅⾯,应当使⽤cookle。
4.服务器负担:单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie。
在Mac上利用压测工具Jmeter-Suite进行一次压测实践的保姆级详细步骤(参考腾讯云文章)

在Mac上利⽤压测⼯具Jmeter-Suite进⾏⼀次压测实践的保姆级详细步骤(参考腾讯云⽂章)参考的⽂章写此⽂的⽬的由于我是刚开始接触kubernetes和jmeter,所以在学习过程中遇到了很多很多问题,同时我很烦恼为什么⽹上没有⽂章是从真正零基础地记录部署的过程,⽐如安装brew和helm3之类的步骤都被省略了,像我这种菜菜就很抓瞎。
所以在我终于摸到了kubernetes世界的⼤门、碰到了压测的边边后,我决定写⼀篇⽂章回馈菜菜们。
需要的背景知识阅读《kubernetes权威指南》第⼀章(了解kubernetes的基本概念)阅读(了解jmeter的作⽤)我的系统详细步骤省略购买压测机器部分的内容,直接跳到压测⼯具安装部分开始。
1 安装brewbrew是⼀个mac上⾯很好⽤的软件管理系统,可以简化mac上的安装过程。
我⽤了⼀个知乎专栏上的⾃动化脚本,链接是,真诚表⽩作者,原本下载速度很慢的,现在下载速度飞升 T^Tps安装期间我遇到了各种问题,因为我原本的mac系统很低,安装了低版本的brew,不知道啥原因死活装不上新版本,我⼲脆重新装了个机,重新安装,就⾮常顺利2 安装wgetLinux系统上⼀个下载⽂件的⼯具。
其实我感觉它的功能和brew挺像的,但由于我参考的⽂章⾥⽤了wget那我就⽤吧()⽤brew install wget命令,我在这⼀步很顺利,省略之。
3 安装helmHelm 是Deis 开发的⼀个⽤于Kubernetes 应⽤的包管理⼯具,主要⽤来管理Charts。
chart 是描述相关的⼀组Kubernetes资源的⽂件集合。
单个chart可能⽤于部署简单的东西,⽐如memcached pod,或者⼀些复杂的东西,⽐如完整的具有HTTP 服务,数据库,缓存等的Web 应⽤程序堆栈。
chart通过创建为特定⽬录树的⽂件,将它们打包到版本化的压缩包,然后进⾏部署。
按照⽂档上的操作,我在运⾏完wget https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gztar -zxvf helm-v3.2.1-linux-amd64.tar.gzcp linux-amd64/helm /usr/local/bin/后,出现了zsh: exec format error: helm 的报错,简单搜索了⼀下,似乎是⽆法解析⽂件?于是我⼜重新进⾏安装helm的操作,也就是运⾏brew install kubernetes-helm,⼜出现了错误。
基于jmeter开展接口自动化测试方法探索与实践

开发测试DEVELOPMENT基于Jmeter开展接口自动化测试方法探索与实践中国农业银行研发中心 冯瑶 秦洪岩 刘跃光在自动化功能测试领域,按照业界普遍认同的单元级、接口级和UI界面级的7-2-1占比原则,接口级功能测试能够屏蔽案例对某些特殊环境依赖、适用范围广,可实现复杂案例设计,收益率适中(占比20%),可提前开展。
然而,接口级自动化测试一般需要依据系统接口特点和报文格式进行适应性开发,工具研发周期较长,因此,选择一款无需自行开发即可满足接口级的自动化测试工具非常有意义。
一、Jmeter简介Jmeter因支持对服务器进行大规模的高强度负载测试,用以检测不同并发数量下系统的整体性能情况,并可以通过内置的Jmeter控件,以文本表格或图形展示的形式生成吞吐量、响应时间等指标的统计分析,被广泛应用于性能测试。
该工具具有可移植性并支持多线程工作,允许通过多个线程并发取消,同时可以通过单独的线程组对多个不同的功能同时取样。
操作者可通过GUI 操作界面进行方便友好的操作。
此外,该工具具有高扩展性,其远程发压机可支持无限制的测试能力。
它不仅具有多种配置元件、处理器和监听器可供选择,还支持脚本编程、动态输入及自定义插件等,用户可根据自身需要进行功能扩展。
因此,针对Jmeter的高扩展性以及支持GUI界面等特性,本文结合使用Jmeter工具开展接口自动化功能测试实践进行了有益的探索并加以总结。
二、测试方法及步骤基于Jmeter进行接口功能测试主要分为报文准备、数据准备、断言设置、测试执行和结果统计等五个步骤,这种方法不仅适用于单交易场景,也适用于混合交易场景。
1.报文准备报文准备共有三种方法:直接复制粘贴报文、浏览器录制协议报文和手动添加参数。
(1)直接复制粘贴报文这种方法适用于开发人员已完成单元测试,此时开发人员可提供给测试人员能够直接使用的测试报文。
以HTTP请求为例,先在Jmeter工具里新建一个HTTP 请求,然后在Body Data中复制粘贴请求报文。
JMETER接口测试用户手册

JMETER接口测试用户操作手册1 第1页共43目录第一章.概述 (4)1.1编写目的 (4)1.2 JMETER 基本介绍以及使用原因 (4)第二章JMETER安装说明 (5)2.1.安装说明 (5)第三章接口测试环境配置 (9)3.1 添加一个线程组 (9)3.2 添加HTTP 请求默认值 (10)3.3 添加结果监听器 (11)3.4 添加http 请求 (12)3.5 添加响应断言 (13)3.6 添加断言结果 (13)第四章配置请求并执行测试 (14)4.1 配置接口地址信息 (14)4.2 添加业务参数 (15)4.3 添加断言 (16)4.4 执行测试 (17)4.5 同时测试多个接口 (19)4.6 脚本导出操作 (19)第五章接口测试与数据驱动 (21)5.1简介 (21)5.2 数据驱动与jmeter接口测试 (21)第六章Jmeter接口测试与持续集成 (25)6.1 简介 (25)6.2 安装ANT (25)6.3 ANT中配置Jmeter (26)6.4 配置jenkins (35)第七章附录 (39)7.1 接口设计文档信息示例 (39)第一章.概述1.1编写目的本文档用于主要用于介绍Jmeter工具安装及其做接口测试的基本操作。
1.2 JMETER 基本介绍以及使用原因Jmeter 是Apache 组织开发的基于JA V A 的压力测试工具,是目前业内主流的开源压力测试工具及HTTP接口自动化测试工具。
我们选择Jmeter做接口测试的原因,主要基于以下几点:(1)Jmeter是市场上主流的开源接口测试工具,即它是免费的(2)Jmeter可以调用不同类型的网络接口,http、https、ftp等等(3)具备PostMan、fiddler等接口测试工具不具备的自动化测试能力(4)Jmeter安装简单,也可以说是免安装的,解压即可用(5)可以与其他工具搭配,构建持续集成测试环境第一章JMETER安装说明2.1.安装说明2.1.1、下载◆首先我们需要打开Apache官网:https:///◆官网主页拉到最底端,找到jmeter,点击进入jmeter主页◆进入下载页面,点击download releases找到最新的jmeter.zip包,下载即可,注意:如下图所示,我们需要先安装jdk1.7以上的版本。
Jmeter测试脚本编写(初学者熟悉篇)

Jmeter测试脚本编写(初学者熟悉篇)Jmeter的Sampler⽤来模拟向被测试系统发起请求的,Jmeter会记录取样的结果,也就是TPS、响应时间等性能指标。
接下来就是使⽤Java请求进⾏⼀个接⼝测试。
⼤致流程1、导⼊jar包:导⼊Jmeter相关jar包2、编写脚本:使⽤Eclipse或者IntelliJ IDEA,进⾏Java测试脚本的编写3、导出为jar包:使⽤Eclipse或者IntelliJ IDEA将测试脚本编译打包为jar包导出4、配置Jmeter:使⽤⾃编译的jar包,以及⼀些相关配置进⾏性能测试5、选择⾃编写jar包:⾃编译jar包6、Jmeter运⾏:开始运⾏实战操作⼀、核⼼步骤(以我实际操作为例)1.创建⼯程使⽤IntelliJ IDEA创建⼀个Java⼯程,取名为JmeterTest;2.添加依赖2.1lib及⼦⽬录依赖将JMeter的lib⽬录下的jar⽂件添加进此⼯程;注意:此处有坑,不能只添加lib这个⼤⽬录,还需要添加lib⽬录下的ext和junit⽬录,否则⽆法调⽤相关jar包lib⽬录下两个两个⼦⽬录2.2IDEA操作1、打开 File -> Project Structure (Ctrl + Shift + Alt + S)或者使⽤快捷键Project Structure快捷键Models添加依赖3.脚本编写创建⼀个类并实现JavaSamplerClient接⼝或继承AbstractJavaSamplerClient,并重写:public Arguments getDefaultParameters():设置可⽤参数及的默认值;public void setupTest(JavaSamplerContext arg0):每个线程测试前执⾏⼀次,做⼀些初始化⼯作;public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;public void teardownTest(JavaSamplerContext arg0):测试结束时调⽤;3.1服务package test;import java.io.File;import java.io.PrintWriter;/*** Created by April_Chou on 2018/4/10.*/public class OutputService {public static void output(String filename,int a, int b)throws Exception {PrintWriter out =new PrintWriter(new File(filename));out.write(a+":"+b);out.close();}}3.2测试类:package test;import org.apache.jmeter.config.Arguments;import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;import org.apache.jmeter.samplers.SampleResult;/*** Created by April_Chou on 2018/4/10.*/public class PerformenceTestimplements JavaSamplerClient {private SampleResultresults;private Stringa;private Stringb;private Stringfilename;// 设置传⼊的参数,可以设置多个,已设置的参数会显⽰到Jmeter的参数列表中 public ArgumentsgetDefaultParameters() {Arguments params =new Arguments();params.addArgument("filename", "0");//设置参数,并赋予默认值0params.addArgument("a", "0");//设置参数,并赋予默认值0params.addArgument("b", "0");//设置参数,并赋予默认值0return params;}// 初始化⽅法,实际运⾏时每个线程仅执⾏⼀次,在测试⽅法运⾏前执⾏public void setupTest(JavaSamplerContext arg0) {results =new SampleResult();}// 测试执⾏的循环体,根据线程数和循环次数的不同可执⾏多次@Overridepublic SampleResultrunTest(JavaSamplerContext arg0) {b = arg0.getParameter("b"); // 获取在Jmeter中设置的参数值a = arg0.getParameter("a"); // 获取在Jmeter中设置的参数值filename = arg0.getParameter("filename"); // 获取在Jmeter中设置的参数值 results.sampleStart();// jmeter 开始统计响应时间标记try {OutputService test =new OutputService();test.output(filename,Integer.parseInt(a), Integer.parseInt(b));results.setSuccessful(true);// 被测对象调⽤}catch (Throwable e) {results.setSuccessful(false);e.printStackTrace();}finally {results.sampleEnd();// jmeter 结束统计响应时间标记}return results;}// 结束⽅法,实际运⾏时每个线程仅执⾏⼀次,在测试⽅法运⾏结束后执⾏public void teardownTest(JavaSamplerContext arg0) {}public static void main(String[] args) {// TODO Auto-generated method stubArguments params =new Arguments();params.addArgument("a", "0");//设置参数,并赋予默认值0params.addArgument("b", "0");//设置参数,并赋予默认值0JavaSamplerContext arg0 =new JavaSamplerContext(params);PerformenceTest test =new PerformenceTest();test.setupTest(arg0);test.runTest(arg0);test.teardownTest(arg0);}}4.Export为Runnable Jar File打开IDEA的file -> Project Structure或者快捷⽅式,进⼊项⽬配置页⾯。
jmeter使用文档接口测试精品PPT课件

➢ 测试开始时间(启动测试时检查是否到达开始时间) ➢ 结束时间(如果到达结束时间,测试终止) ➢ 测试持续时间(设置后,忽略结束时间,次序X秒后停止测试) ➢ 延迟开始(设置后,忽略开始时间,X秒后开始测试)
Tips-1
线程组分类 在JMeter 中有3 种Thread Group, 一个Test 中可以包含多个同类型的Thread Group
➢ An Example
➢ 此处需要演示Example.jmx ➢ 一个简单测试包含的基本元件:Test plan(测试计划)->Thread Group(线程组)->Sampler(取样器)->
Assertions (断言)和Listener(监听器) ➢ 初步印象:一个测试计划下,可以创建多个线程组(分组配置测试执行规则);线程组下的每个sampler+断
➢ 函数测试模式:在非GUI模式下运行时,-l标志创建的日志文件。 此选项勾选后,日志文件默认写入更多的数据字段如完整响应数 据,影响性能。
➢ 添加classpath:类路径设置,可以添加jar文件或目录到特定的 测试计划。【须重新启动JMeter】
➢ 可以直接把jar包放到jmeter的lib目录(默认的classpath )
言组成用例,测试时监听器统计输出测试结果。
Test Plan
➢ Name:测试计划名字
➢ Comments:关于该测试计划的注释
➢ User Defined Variables:可以定义整个测试中使用的重复值, 如服务器名称。如果相同的变量名重复赋值,该值被设置为在测 试计划(读从上到下)的最后一个定义。需要注意的是测试计划 不能引用它定义的变量。如果需要从测试计划变量构建其他变量, 使用配置元件。其他地方引用变量用${var_name}
Jmeter(五)Jmeter接口测试和压力测试

Jmeter(五)Jmeter接⼝测试和压⼒测试 jmeter是apache公司基于java开发的⼀款开源压⼒测试⼯具,体积⼩,功能全,使⽤⽅便,是⼀个⽐较轻量级的测试⼯具,使⽤起来⾮常简单。
因为jmeter是java开发的,所以运⾏的时候必须先要安装jdk才可以。
jmeter是免安装的,拿到安装包之后直接解压就可以使⽤,同时它在linux/windows/macos上都可以使⽤。
jmeter可以做接⼝测试和压⼒测试。
其中接⼝测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传⽂件)、做webservice脚本、参数化、断⾔、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。
接⼝测试Jmeter-http接⼝脚本⼀般分五个步骤:(1)添加线程组(2)添加http请求(3)在http请求中写⼊接⼊url、路径、请求⽅式和参数(4)添加查看结果树(5)调⽤接⼝、查看返回值jmeter 发get请求jmeter 发post请求jmeter 添加cookie需要在线程组⾥添加配置元件—HTTP Cookie 管理器jmeter 添加header需要在线程组⾥⾯添加配置元件—HTTP信息头管理器jmeter 上传⽂件jmeter 参数化⼊参经常变化的话,则可以设置成⼀个变量,⽅便统⼀修改管理;如果⼊参要求随机或可多种选择,则通过函数⽣成器或者读取⽂件形成⼀个变量。
所以参数化有三种⽅式:⽤户定义的变量、函数⽣成器、读取⽂件。
(1)⽤户定义的变量 需要添加配置元件-⽤户定义的变量。
(2)函数⽣成器 需要⽤到函数助⼿功能,可以调⽤函数⽣成⼀些有规则的数据。
常⽤的⼏个函数有_uuid、_random、_time。
_uuid会⽣成⼀个随机唯⼀的id,⽐如在避免java请求重发造成未处理数据太多的情况,接⼝请求可加⼀个唯⼀的请求id唯⼀的响应id进⾏⼀⼀对应;随机数_random,可以在你指定的⼀个范围⾥取随机值;取当前时间_time,⼀些时间类的⼊参可以使⽤,如{__time(,)} 是⽣成精确到毫秒的时间戳、{__time(/1000,)}是⽣成精确到秒的时间戳、${__time(yyyy-MM-dd HH:mm:ss,)} 是⽣成精确到秒的当前时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单个接口测试,我们使用谷歌的插件posman
多个接口测试,我们使用Jmeter进行测试
一、使用工具测试
1、使用Jmeter对接口测试
首先我们说一下为什么用Posman测试后我们还要用Jmeter做接口测试,在用posman测试时候会发现的是一个接口一个接口的测试,我们每次测试成功后的数据,在工具中是无法保存的,再次测试的时候我们还要重新输入测试的数据,当我们测试一个接口的时候可能感觉不明显,但是当你测试几十个接口的时候,你就会发现使用Jmeter的好处。
二、使用Jmeter接口测试
1、首先邮件添加一个线程组,然后我们重命名接口测试
2、在线程组上添加一个Http默认请求,并配置服务器的IP地址端口等信息
3、在线程组中添加一个HTTP请求,这里我们重命名“增加信用卡账户信息接口”
4、配置接口请求信息,这配置示例如下,HTTP请求名称可以按需求命名:
注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以
我们将需要最先执行的请求放在前面
精心整理
7、点击启动,运行结束后查看,结果树和聚合报告
8、去数据库中核对数据。