关于jmeter接口自动化测试框架的信息

网友投稿 332 2023-04-16


本篇文章给大家谈谈jmeter接口自动化测试框架,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享jmeter接口自动化测试框架的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

接口自动化测试框架?

关于自动化测试项目中会分成许多的不同的测试模块,而今天我们就一起来了解一下,关于接口的自动化测试框架都有哪些比较常见的类型。下面昌平java课程就开始今天的主要内容吧。



需求:


1、接口编写方便。


2、方便调试接口。


3、支持数据初始化。


4、生成测试报告。


5、支持参数化。


robotframework


优点


关键字驱动,自定义用户关键字。


支持测试日志和报告生成。


支持系统关键字开发,可扩展性好。


支持数据库操作。


缺点


接口测试用例写起来不简洁。


需要掌握特定语法。


结果:不考虑,没人愿意这么写接口用例。


JMeter


优点


支持参数化


不需要写代码


缺点


创建接口用例效率不高。


不能生成查看每一个接口执行情况的测试报告。


总结:不考虑,接口编写不方便,主要是不能生成测试报告,如果做接口性能的话可以考虑。


HttpRunner


优点:


基于YAML/JSON格式,专注于接口本身的编写。


接口编写简单


生成测试报告


接口录制功能。


缺点:


没有编辑器插件对语法校验,容易出错。


官方文档没有详细的说明。


扩展不方便。


接口自动化测试环境搭建jmeter+ant+git+jenkins

1、安装java

方式一:安装java环境:yum install java-1.8.0-openjdk* -y

使用命令检查是否安装成功 java -version

到此安装结束了。这样安装有一个好处就是不需要对path进行设置,自动就设置好了。jdk安装在/usr/lib/jvm目录下
方式二:先下载对应版本到本地,然后解压缩,配置环境变量(详细步骤百度即可)

2、安装jmeter

(1)登录自己服务器,在usr/local下创建文件夹jmeter,命令mkdir jmeter

(2)通过官网下载jmeter到本地

(3)通过xhell上传到对应的目录(cd到要上传的目录)

(4)yum -y install lrzsz(安装了lrzsz,执行该命令是因为服务器有的文件不让上传。让上传就不用执行)

(5)使用 rz -y命令进行文件上传,此时会弹出上传的窗口,进行上传即可

(6)上传成功之后进行解压 unzip apache-jmeter-5.4.zip

(7)配置环境变量vi /etc/profile

esc+shift # 键盘同时按住,退出编辑模式

:wq # 保存退出

:q # 不保存退出

添加如下内容:

# set Jmeter enviroment

export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.4

export PATH=${PATH}:${JMETER_HOME}/bin

(8)source /etc/profile # 使配置文件生效

(9)jmeter -version
3、安装ant

(1)在usr/local下创建文件夹ant,命令mkdir ant

(2)通过官网下载ant到本地

(3)使用 rz -y命令进行文件上传,此时会弹出上传的窗口,进行上传即可 sz 文件名(服务器文件下载到本地)

(4)上传成功之后进行解压 unzip

(5)配置环境变量vi /etc/profile
# set Ant enviroment

export ANT_HOME=/usr/local/ant/apache-ant-1.10.10

export PATH=${PATH}:${ANT_HOME}/bin
(6)source /etc/profile # 使配置文件生效

(7)ant -version
4、ant的配置

(1)将jmeter安装包extras文件夹里ant-jemter-1.1.1.jar 复制到antlib下

cp ant-jmeter-1.1.1.jar /usr/local/ant/apache-ant-1.10.10/lib

(2)进入apache-jmeter-3.0extras运行ant ,查看该目录下是否出现Test.jtl、Test.html文件,若有,则构建成功
5、编写Ant的build.xml文件

(1)创建Jmeter_Test目录,放在/usr/local/下

(2)Jmeter_Test目录下创建build.xml、ResultLog(html,jtl)、Script(放脚本)

(3)build.xml文件内容去https://www.cnblogs.com/L-Test/p/9736808.html下复制,需要修改里边的路径
6、jenkins安装

(1)Jenkins下载地址:https://jenkins.io/download/

(2)下载的是jenkins.war

(3)在Linux下启动Jenkins有两种方式,一种是在jenkins.war的存放目录下使用命令java -jar jenkins.war启动,

另外一种是把jenkins.war放在tomcat的webapps目录下,然后启动tomcat就可以了(本次用的第一种)

(4)在浏览器中输入http://服务器ip:8080/jenkins/

如果是用的阿里云服务器,启动成功之后,在浏览器访问,无法访问。解决办法就是登陆阿里云服务器修改一下安全规则,把端口范围调大

(5)访问成功之后输入管理员密码

(6)安装推荐的插件,创建管理员用户

7、jenkins的其他配置

(1)修改为中文依赖的三个插件localization-zh-cn、locale、localization-support

jenkins插件下载地址https://blog.csdn.net/qq_39530199/article/details/90266654

(2)不知道依赖于那个插件,可以看看manage Jenkins里边的报错 plugin is missing

8、git的安装

(1)git下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

(2)usr/local下新建git目录,cd到git,安装包上传上来, tar -zxvf v2.17.0.tar.gz

(3)安装编译源码所需依赖,命令为: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl- ExtUtils-MakeMaker 耐心等待安装,出现提示输入y即可;

(4)安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为: yum remove git 出现提示输入y即可;

(5)进入解压后的文件夹,命令 cd git-2.17.0 ,然后执行编译,命令为 make prefix=/usr/local/git all 耐心等待编译即可;

(6)安装Git至/usr/local/git路径,命令为 make prefix=/usr/local/git install ;

(7)打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息

# set Git enviroment

export GIT_HOME=/usr/local/git

export PATH=$GIT_HOME/bin:$PATH

(8)git version

9、jenkins安装相应插件

(1)安装源码管理选择git需要的插件git、git-server、git-client、github-api、plain-credentials、github

上传插件的时候可能会报错,可以把插件上传顺序改一下在上传

(2) jenkins设置git的安装路径,点击全局工具配置/usr/local/git/bin/git(whereis git 命令可查看)

(3)windows本地安装git,把代码推送到github(需要在github创建一个仓库),参考自动化测试的 《

(4)jenkins配置源码管理选择git,地址输入github项目地址,账号可以先在jenkins凭据配置中添加github账号

输地址或账号的时候可能会报403的错误。解决办法刷新一下或者 在Configure Global Security中开启 启用代理兼容

(5)配置完源码管理,直接进行构建,代码自动下载到/root/.jenkins/workspace/git/路径下

10、接下来需要把build.xml中脚本路径改为/root/.jenkins/workspace/git/进行构建,可以在Github里提交一个jmx文件构建一下试试

Jmeter实现接口测试

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。

明白jmeter接口自动化测试框架了原理以后jmeter接口自动化测试框架,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,jmeter接口自动化测试框架我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用Jmeter做接口测试的流程,主要针对的是功能测试。暂不涉及到自动化测试和性能测试的内容。

一把来说,主要的步骤都大差不差。

第一步:通过分析API文档和需求文档提取接口清单 。

也就是说,接口测试工作人员工作的开始就是从API文档和需求文档开始的。所以进入公司的第一件事情就是要拿到API文档和需求文档来了解,来看,来分析。从其中提取接口清单的话,主要是因为API文档中有很多冗余,不必要的信息。这些信息可能对于开发人员是有用的,但是对于jmeter接口自动化测试框架我们测试人员是没有用的,所以要去除冗余,提取关键信息。

那么怎么提取呢?方法也很简单,从功能模块和方法模块对API文档中的内容进行提炼,提炼的关键是接口三要素:url+方法+参数+返回值。我的建议是可以先将所有的url提取出来,基本上一个url就是对应一个接口的,这样一条线把整体拎起来,就感觉混乱的局面清晰多了。

当然工作中,有的时候我们是可以直接拿到接口清单的,因为清单这个事情一个团队做一份就好了,并不是说要每个人都做一份。但是我们自己得会,得有这个能力。之前看到过一个面试题,问的是,如果没有API文档,怎么做接口测试?

其实问的就是如果没有API文档,应该怎么提取接口清单的问题。很简单,根据需求文档和原型图来提取。有的公司不正规,确实是没有API文档的。或者有的公司API文档写的不规范,那提取的时候,就很考验测试人员的经验和能力了。所以如果能找到遵循restful风格写的优秀API文档,那就好了,提取的时候很方便。

第二步:针对接口清单,做单接口测试和关联接口测试。

在实际测试过程中,单接口测试和关联接口测试的时间是不一样的,这涉及到业务逻辑测试和功能点测试等。但是在测试的时候,jmeter接口自动化测试框架他们的逻辑和方法是类似的。

当然这里主要介绍的是单接口测试,因为单接口测试时会考虑各种可能的情况,而关联接口测试一般是建立在单接口没有问题的前提下的。换个角度来说,就相当于是两个层次,单接口测试是基础,而关联接口测试是拔高。

那么具体应该怎么做呢?比如我们这里已经选定而来某一个接口来测试。

首先,根据选定的接口来搭建测试框架 。

接口不是什么大不了的事情,无非就是url、方法、参数、返回数据这四块。这样就意味着,一个接口的框架是固定的,只不过每次传输的数据和返回的数据可能会不一样而已。所以我们要做的第一步就是搭建测试框架。

那么怎么搭建呢?这里就要用到从API文档中整理出来的接口清单和Jmeter了。从接口清单里,可以拿到当下接口的url+方法+参数+预期返回数据。这就是我们搭建测试框架的依据。接下来用Jmeter搭建。

首先需要打开Jmeter,然后基于测试计划,创建线程组,基于线程组创建HTTP请求。考虑到单接口测试,一个框架,要测试N多个数据,而且后面的接口可能也要用到同样的ip地址、同样的content-type,所以一般会先创建一个HTTP请求默认值,将一些可能会重复用到的信息填进去,比如说端口号、协议之类的。如有必要还需要添加HTTP信息头管理器,放一些user-agent、content-type等内容。

好的,有了这两个基础就可以来创建HTTP请求。在新的请求里,已经填写的端口号呀、ip地址呀之类的就无需填写了,只需要填写方法之类的即可。那么搭建框架在哪里搭建呢?一般会考虑para或者body里。比如说,要提交一段json格式的数据,那么就要用body(消息体)来提交,如下图所示。

将从接口清单里拿到的json数据填写到消息体数据里,然后将需要不断传入的数据进行参数化设置,那搭建测试框架就算是完成了。接下来只需要把数据一条一条传入进行测试即可。

那么如何把数据进行传入呢?

其实我们在下面的这篇文章里已经介绍了,传入数据的方法有四种,但主要使用的还是csv data set config 和函数。做功能接口测试,用csv就足够了。那么具体怎么用呢?

星空下:软件接口测试工具Jmeter使用核心详解12 赞同 · 0 评论文章

基于当前的线程组或者请求创建CSV数据文件配置组件。如果这份数据只有这一个请求会用,那么就基于请求创建即可。如果这份数据会被这个线程组里的多个请求使用,那么就基于线程组创建。

创建了以后就需要填入文件了呢?可是文件在哪里呢?这个时候就要稍微停一下jmeter的操作,先去针对当前接口设计测试用例并形成有关文档了。有关于功能接口测试的用例设计,我们之后会专门用一篇文章来介绍,这里先带过。这是因为设计测试用例是做测试过程中最核心的一步。

在测试用例设计完之后,可以将其保存在一个txt文档里,采用utf-8编码,保存到Jmeter脚本的同一父目录下。然后按照上面那篇文章里的设置方法进行设置即可,注意路径可以采用相对路径,便于数据文件的拷贝和使用。

csv组件设置好以后,数据源有了,变量名有了,变量名的赋值也有了,接下来就只剩引用参数就可以了。在测试框架里需要引用参数的地方引用,引用的格式是${参数名}。到这里,针对于某一个接口的测试工作就准备完成了。

然后在Jmeter里面添加查看结果树组件,执行请求,依次查看结果 。看一看返回的数据和我们的预期结果是否一致,不一致,那可能就是一个bug。

做一个小小的总结吧,用jmeter做功能接口测试,其实很简单的。逻辑和原理都是类似的,如果遇到新的项目,可能说会用一些新的组件而已,那百度一下几分钟的事情。在学习软件测试的时候,最重要的就是不要怂,不要看起来说怎么要学的东子这么杂这么多,只要能够拎出其中的线索和主干,然后把一些零碎的点给组装上去,就会感觉,哇,忽然之间,好有条理。

从0到1,用Jmeter搭建HTTP接口自动化引擎 1.0 版本

如图:

附件内容包括

(1)测试用例执行摘要:

(2)测试用例详细信息:

如果http请求是post

获取post请求数据

断言内容解析:

int errcount = Integer.parseInt(vars.get("errcount").trim());

int allcount = Integer.parseInt(vars.get("respcount").trim());

int equalscount=0;

int equalsokcount=0;

if("${HttpStatus}"!=""){

// log.info("==========================${HttpStatus}");

if(SampleResult.getResponseCode().equals("${HttpStatus}".trim())) {

equalscount++;

equalsokcount++;

//  log.info("================equalscount: " + equalscount);

//  log.info("================equalsokcount: " + equalsokcount);

}else {

String code = SampleResult.getResponseCode();

vars.put("respcode",code);

vars.put("AssertionNoOk","断言失败内容为:HttpStatus,实际请求返回的HttpStatus为: "+code+",断言内容的HttpStatus为: "+"${HttpStatus}");

equalscount++;

//  log.info("================ERRORequalscount: " + equalscount);

//  log.info("================ERRORequalsokcount: " + equalsokcount);

//  log.info("====================ErrorHttpStatus is: " + code);

}

}

if("${ResponseMessage}"!=""){

if(SampleResult.getResponseMessage().equalsIgnoreCase("${ResponseMessage}".trim())) {

equalscount++;

equalsokcount++;

}else {

equalscount++;

String msg = SampleResult.getResponseMessage();

vars.put("respmsg",msg);

vars.put("AssertionNoOk","断言失败内容为:ResponseMessage,实际请求返回的ResponseMessage为: "+msg+",断言内容的ResponseMessage为: "+"${ResponseMessage}");

}

}

if("${ResponseData1}"!=""){

if(SampleResult.getResponseDataAsString().contains("${ResponseData1}".trim())) {

equalscount++;

equalsokcount++;

}else {

equalscount++;

String data = SampleResult.getResponseDataAsString();

vars.put("respdata",data);

vars.put("AssertionNoOk","断言失败内容为:ResponseData1,实际请求返回的ResponseData1为: "+data+",断言内容的ResponseData1为: "+"${ResponseData1}");

}

}

//log.info("===================================ResponseData2=" + "${ResponseData2}".trim());

if("${ResponseData2}"!=""){

if(SampleResult.getResponseDataAsString().contains("${ResponseData2}".trim())) {

equalscount++;

equalsokcount++;

}else {

equalscount++;

String data = SampleResult.getResponseDataAsString();

vars.put("respdata",data);

vars.put("AssertionNoOk","断言失败内容为:ResponseData2,实际请求返回的ResponseData2为: "+data+",断言内容的ResponseData2为: "+"${ResponseData2}");

}

}

if("${ResponseData3}"!=""){

if(SampleResult.getResponseDataAsString().contains("${ResponseData3}".trim())) {

equalscount++;

equalsokcount++;

}else {

equalscount++;

String data = SampleResult.getResponseDataAsString();

vars.put("respdata",data);

vars.put("AssertionNoOk","断言失败内容为:ResponseData3,实际请求返回的ResponseData3为: "+data+",\n断言内容的ResponseData3为: "+"${ResponseData3}");

}

}

if(equalscount==equalsokcount) {

SampleResult.setSuccessful(true);

vars.put("sendemail","no");

allcount++;

vars.put("respcount",allcount.toString());

}else {

errcount++;

allcount++;

SampleResult.setSuccessful(false);

vars.put("errcount",errcount.toString());

vars.put("respcount",allcount.toString());

vars.put("sendemail","yes");

}

利用SMTP Sampler发送邮件

邮件内容如下:

至此,Jmeter HTTP接口自动化引擎搭建完毕

还可以利用jenkins定时执行Jmeter引擎,从而实现对线上接口的监控

资料参考:

(1)Jmeter build.xml文件: http://pan.baidu.com/s/1i46tMlR

(2)Jmeter生成报告格式(参考heman贺满博客 http://www.cnblogs.com/puresoul/http://pan.baidu.com/s/1kVssMzl ):

(3)jmeter.properties(修改jmeter生成.jtl文件内容配置): http://pan.baidu.com/s/1cyaNlc

(4)测试用例模版:http://pan.baidu.com/s/1kVegq6j

(5)Jmeter接口自动化引擎内容:http://pan.baidu.com/s/1kVop9n5

python自动化教程Jmeter性能测试

python自动化教程Jmeter性能测试25套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,UFT高级测试,Android测试,Selenium3自动化测试,Python3 测试,Java接口测试项目实战视频教程

软件测试技术包含:性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,UFT高级测试,项目实战,Android测试,Selenium3自动化测试,Python3 测试,Java接口测试,LoadRunner性能测试,Appiumapp自动化测试,UIAutomator,Appium,Unittest测试框架,Kali Linux Web渗透测试,Git+Jenkins持续集成,LR+Jmeter性能测试,分布式性能测试高级视频教程。。。

Dodwnload:https://www.soft1188.com/rjcs/283.html

总目录:25套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,目实战视频教程

第一套:【基础精通】软件测试特训营基础到就业班,系统测试,WEB测试,UFT与Selenium自动化测试,LR性能测试视频教程

第二套:【项目实战】软件测试系列之Java Selenium3自动化测试项目实战视频教程

第三套:【微服务课】Spring Cloud微服务最新技术入门到精通视频教程

第四套:【系统学习】Android移动端自动化测试从入门到实战(Java篇)UIAutomator,Robotium,Appium实战进阶视频教程

第五套:【系统学习】Android移动端专项测试与自动化测试(Python篇)UIAutomator,Appium,Unittest框架视频教程

第六套:【性能测试】JMeter深入进阶性能测试体系,接口性能测试,各领域企业实战视频教程

第七套:【项目实战】JMeter全程实战、性能测试实战、分布式性能测试、真实案例分析、基础到精通视频教程

第八套:【性能测试】LoadRunner性能测试基础到精通全程实战视频教程

第九套:【渗透测试】Kali Linux Web渗透测试视频教程

第十套:【系统学习】Appiumapp自动化测试基础到精通视频教程

第十一套:【项目实战】python selenium自动化测试项目实战视频教程(3套)

第十二套:【系统学习】快速上手JMeter性能测试工具视频教程

第十三套:【系统学习】LoadRunner软件性能测试,接口性能测试视频教程

第十四套:【项目实战】Selenium3.0深度解析自动化测试框架设计与实战与平台设计高级测试开发实战视频教程

第十五套:【系统学习】Web自动化测试,Selenium基础到企业应用,用例设计,持续集成视频教程

第十六套:【项目实战】最全面的Java接口自动化测试实战视频教程

第十七套:【项目实战】Python接口自动化从设计到开发,测试框架实战与自动化进阶视频教程

第十八套:【系统学习】达内软件测试零基础到就业视频教程

第十九套:【测试就业】软件测试就业指导视频教程

第二十套:【安卓测试】Android安卓自动化新手进阶测试培训手机app软件开发课

第二十一套:【系统学习】软件测试特训营,自动化测试与UFT应用视频教程

第二十二套:【高新面试】Python高新面试教程移动自动化测试面试面试分析+知识理论+面试技巧视频教程

第二十三套:【高级测试】最新Web自动化测试框架Selenium3.0+Python3,搭建通用的Web自动化测试框架实战视频教程

第二十四套:【高级测试】高级软件测试工程师精英培训班,软件测试工程师(Web自动化+APP自动化+接口自动化+面试)视频教程

第二十五套:【系统学习】软件测试web自动化测试selenium+移动端项目测试appium+接口测试Jmeter+性能测试LoadRunner视频教程

python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试python自动化教程Jmeter性能测试

使用jmeter做接口验证测试

说明:最近在做老系统的接口自动化,老系统的接口欠缺维护;我一步步梳理清楚业务主流程,然后对主流程接口在jmeter上进行验证(顺便做下单接口的并发,下期讲),接口流程跑通后,就可以直接快速编写接口自动化测试用例啦

涉及知识点:登录、获取token、设置token为全局变量

步骤适合有点基础的同学
首先登录、然后提取登录接口返回参数 [多个参数使用json提取器,使用规则见下图];
将接口默认设置配置元件中,最后将token设置为全局变量 [ 脚本见下图]

一、Response Assertion(响应断言)

二、Size Assertion(数据包字节大小断言)
判断响应结果是否包含正确数量的byte。可定义(=, !=, , <, =, <=)

三、Duration Assertion(持续时间断言)
判断是否在给定的时间内返回响应结果(ms)

四、beanshell 断言(自由断言)

关于jmeter接口自动化测试框架和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 jmeter接口自动化测试框架的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、jmeter接口自动化测试框架的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:dubbo接口自动测试(如何测试dubbo接口)
下一篇:前端mock工具推荐(前端monorepo)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~