基于Jmeter的自动化测试实施方案设计

前言:

Jmeter是目前最流行的一种测试工具,基于此工具我们搭建了一整套的自动化方案,包括了脚本添加配置、本地配置和运行、服务器配置等内容,完成了自动化测试闭环,通过这种快捷简便高效的方式,希望可以解决自动化测试上手难的痛点。下面闲言少叙,我们直接切入实战:

一、准备自动化测试物料

1、开发运行工具Jmeter,(下载地址: http://jmeter.apache.org/download_jmeter.cgi

2、开发环境为已发布ready;

3、测试脚本已准备ready;

4、脚本运行环境已准备(fat或者uat);

二、自动化测试通过标准

1、成功Status 返回200 ;

2、失败返回404、500等;

3、每个脚本专用断言;

三、自动化脚本存储

脚本全部存储在Gitlab仓库中,(脚本的存储规范请参考:GitLab Jmeter测试包通用设计1.0版)

项目根目录新建文件夹,前面文件夹名和项目名保持一致,后缀加“-test”,如下图文件夹:

四、自动化测试Script Rules

1、脚本命名为接口名

2、存储类型为后缀jmx的文件

3、线程数设置为1(冒烟测试无需多线程并发)

4、必须包含断言判断,状态检测设定为200

五、自动化测试Script Steps

1、添加线程组,脚本命名为接口名,点击存储 为后缀jmx的文件

2、将线程数设置为1,其他设置为默认(如下图)

3、循环次数为不循环,调度器不设置,其他参数不设置(如下图)

4、配置http协议选项:

a、添加http请求,线程组右键“添加”,选择“Sampler”,再选择“HTTP请求”:

b、请求为post or get(如下图,此处根据实际情况设置为POST)

c、内容编码:UTF-8(如下图,此处根据实际情况设置为UTF-8)

d、Request报文:填入Body Data(如下图,此处根据实际情况设置Request报文内容)

5、配置断言选项,线程组右键“添加”,选择“断言”,此处选择“响应断言”。注意可以根据实际情况选择其他断言类型:

a、添加响应断言,如下图所示;

b、选择响应字段为响应代码,如下图所示;

c、匹配规则选择为包括,如下图;

d、测试模式填入200,如下图(此处为开发自定义返回码,请根据实际情况设置);

6、添加“HTTP信息头管理器” ,在测试计划点击右键“添加”菜单,选择“配置元件”,再选择“HTTP信息头管理器” (即为HTTP Header Manager),如下图:

可根据实际情况添加Content-Type等内容,例如此处value设置为:application/json,如下图范例:

7、添加“查看结果树”,在测试计划点击右键“添加”菜单,选择“监听器”,再选择“查看结果树”:

运行成功或失败,分别可以查看结果树详情,如下图所示,查看响应数据,可以看到response报文:

下图是一个运行失败结果的断言,断言失败的信息也会有详细说明:

8、添加"用表格查看结果",在测试计划点击右键“添加”菜单,选择“监听器”,选择“用表格查看结果”:

添加后每次测试计划运行结束,可以查看全部线程组的运行结果,如下图所示:

9、添加“聚合报告”,在测试计划点击右键“添加”菜单,选择“监听器”,选择“聚合报告”:

聚合报告主要用来收集本次测试计划运行的一些重要的性能指标数值,例如Average、90%Line等等,添加后每次测试计划运行结束可以查看到指标的有效数据,如下图范例:

六、本地执行

1、在当前测试计划中,根据上述范例逐一添加本次需要运行的自动化脚本,添加完成后的效果如下所示:

2、运行当前测试计划的全部用例,然后用查看全部运行结果如下:

3、同样在结果树,可以查看全部失败用例的详细报文:

七、服务器配置和运行(Jenkins/TFS)

由于job最底层调度由Jenkins实现,本小节重点介绍如何配置job参数等内容。TFS方面只需要通过接口或者命令行的方式,直接调度Jenkins即可。

1、Job命名规范,定义在Jenkins中job的命名规范,如下图所示,以“JMETER”开头后面是服务名:

2、添加构建配置,如图所示,其中devops是基于Python编写的打包脚本,/sso-support-test是Jmx脚本文件地址,report_server是邮件服务,mail是报告接收人的邮箱地址:

3、构建触发器配置:如图所示,这里配置每两分钟去轮循检查服务器是否有更新:

4、源码管理:添加并选择Git仓库,然后配置Repo地址,最后选择分支dev(非强制)

八、服务器生产自动化报告

自动化报告目前支持两种形式,邮件和Html报告查看。

1、邮件方式报告查看。服务器端配置响应接收人员的邮件地址后,每次自动化运行结束,会自动发送邮件报告到指定关注人,如下图所示:

邮件Report中主要包含以下内容:

Summary栏目:包含所有请求的总结,总数,失败数,成功率,平均时间,最小时间,最大时间等。

Pages栏目:主要包含了单个请求的详情内容:

Failure Detail:主要是错误详情相关内容:

2、Html报告查看。Html内容展示目前和邮件基本保持一致不再展开详述,如下图所示:

原文地址:https://www.cnblogs.com/zishi/p/8448073.html

时间: 2024-10-18 06:49:26

基于Jmeter的自动化测试实施方案设计的相关文章

基于jmeter+ant实现的接口自动化测试

jmeter+ANT接口自动化测试框架 项目说明 本框架是一套基于jmeter+Ant+Excel+Python而设计的数据驱动接口自动化测试框架,jmeter 作为执行器,Ant 作为构建工具,进行构建测试,本框架无需你使用代码编写用例,测试用例存储在csv中,在csv中可以进行接口用例编写,接口断言,用例运行控制. 技术栈 jmeter Ant Python 环境部署 1.安装JDK 2.安装Jmeter 3.安装 ANT 1.解压apache-ant-1.10.5-bin.zip到任意目录

DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(前篇)

背景: 目前对于传统WEB网站性能(压力/负载)的测试工具有很多,loadrunner.iperf.siege等,操作都比较简单,这里就不介绍了.然而对于医疗领域内的服务器,通常指的是DICOM服务器,提供满足DICOM3.0标准规定的各项DIMSE服务,诸如DIMSE-C(C-STORE.C-FIND.C-MOVE.C-ECHO).DIMSE-N(N-CREATE.N-DELETE)等等.倘若使用传统的压力测试工具会有几大局限性: 常见压力测试工具,通过模拟上千万用户实施并发负载及实时性能监测

基于Selenium的自动化测试框架 - SeLion学习之一(基本介绍)

SeLion是一个基于Selenium的自动化测试框架,是Selenium下的一款非常优秀的框架结构,但是资料非常少,在国内使用的也就相对较少,本人会用一系列的文章,比较详细的介绍该框架结构,希望能给广大的自动化测试爱好者提供一个实现思路,如果对该本人文章感兴趣或者有什么问题,欢迎留言,我会尽量回答,也欢迎转载该系列文章.该文章是本系列第一节,SeLion的基本介绍,先让大家对SeLion有一个基本的认识. 一:SeLion是什么?SeLion是基于Selenium的一款开源测试框架,是对Sel

基于QTP的自动化测试框架概述

框架稳定后展示给用户的内容有以下几部分,也就是说测试人员需要去关注去维护的部分就可以了,完全不在care代码内容是什么,只需要按照格式填写就OK 1.测试用例执行模拟控制列表(可用其它管理工具代替,这里用成本最低的方式实现不借助已有的专业管理工具) 2.测试用例控制列表 3.测试数据控制列表 基于QTP的自动化测试框架概述,布布扣,bubuko.com

基于Jmeter跟Jenkins的自动化性能测试的一站式解决方案(转)

www.MyException.Cn  网友分享于:2015-08-26  浏览:0次 基于Jmeter和Jenkins的自动化性能测试的一站式解决方案 作者: Yu, Qingguo Shen, Vivien Wu,Biyun 背景 性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用.Jmeter是一款广泛使用的性能 测试工具,然而,在执行测试前,用户往往需要花费很多额外的精力和时间配置测试环境.同时在进行测试时,使用单台服务器模拟数以千计的用户对目标服务器产 生负

基于APK的自动化测试

Robotium第一个例子(NotePad)中是基于源码的自动化测试,Robotium也可以基于APK进行自动化测试,也就是说你只要有APK文件,没有源代码,也可以进行自动化测试的. 在做基于APK的自动化测试的过程中,需要确保的一点是,被测试的APK必须跟测试项目具有相同的签名,那怎么做才能确保两者拥有相同的签名呢? 第一步,首先将被测APK的签名去掉,然后用debug keystore重新进行签名,Eclipse也是使用debug keystore为默认的keystore为应用签名的,这样就

基于Jmeter和Jenkins的自动化性能测试的一站式解决方案

作者: Yu, Qingguo Shen, Vivien Wu,Biyun 背景 性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用.Jmeter是一款广泛使用的性能测试工具,然而,在执行测试前,用户往往需要花费很多额外的精力和时间配置测试环境.同时在进行测试时,使用单台服务器模拟数以千计的用户对目标服务器产生负载,受限于服务器的性能可能无法满足需求,这就需要一个多台服务器的分布式的并发的测试环境.因此我们决定开发一个基于Jmeter和Jenkins的自动化性能测试的

转:基于Jmeter的MQTT测试插件

基于Jmeter的MQTT测试插件-上 1. Jmeter插件简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.下载 用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 这里我们主要使用的基于Jmeter开发的,测试MQTT协议的插件工具,从github上找到了几个歪果人写的插件,主要有以下几个: tuanhiep/mqtt-jmeter hemikak/mqtt-jmeter winglet/mqttws-jmeter 这3个插件

基于MBT的自动化测试工具——GraphWalker介绍和实际使用

GraphWalker是一个开源的基于模型的自动化测试工具,它可以用来通过图形测试模型来自动生成测试用例. 本文主要描述了使用yed画出FSM, EFSM模型图(常见的流程图),然后使用GraphWalker命令生成手工自动化用例,最终通过python将手工用例读取后自动执行并生成执行报告. 一: GraphWalker概述 GraphWalker就是一个基于测试模型的用例生成工具.它主要应用于FSM, EFSM模型.可以用来它可以直接读取FSM, EFSM图形模型.json模型.生成测试用例.