关于http接口自动化测试框架实现的信息

网友投稿 277 2023-04-21


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

本文目录一览:

接口自动化测试文档架构分析?

自动化测试是互联网软件开发行业发展之后的新的产物,而今天我们就一起来了解一下,关于接口的自动化测试都需要包含哪些内容以及接口测试的文档架构。



接口都有那些部分组成呢?


接口文档应该包含以下内容:


1、接口说明


2、调用url


3、请求方法(get\post)


4、请求参数、参数类型、请求参数说明


5、返回参数说明


如果是测http接口,你需要至少需要调用一个发送http请求的库,例如httpclient来发送不同类型的请求给到待测的接口,如GET,POST,PUT,DELETE,带上你的请求头header和请求体body,然后通过xml库来解析感兴趣的返回值的字段,与期望值做比较,从而判断用例成功还是失败。


接口自动化整体思路


说简单的接口自动化大致三个步骤:a-发送请求;b-解析结果;c-验证结果


为了方便起见,你应该自定义三个和业务相关的测试类:


1.一个用来封装httpclient,用来发送请求的类,昌平java课程建议用于发送各类测试请求。


2.一个解析结果xml的类,用来获取感兴趣的结果值。


3.一个用于比较测试结果和期望值的类,用于验证。


当然这是简单的一个http借口测试框架,如果你愿意还可以做的更强大,比如自动生成测试数据,生成自定义格式的测试报告,自动发送测试报告,检查服务端数据内容是否正确等等。


接口自动化测试怎么做的

了解了接口测试是什么之后,怎么做接口测试呢?接口测试的流程其实和功能测试流程类似:接口测试计划-接口测试用例-接口测试执行-接口测试报告。测试用例设计的依赖对象主要是需求说明书和接口文档。
接口测试因其不是针对普通用户,而是针对的另外一个系统组件,所以不能直接测试,需要使用工具测试,比如服务端http接口测试,常用的工具有jmeter、postman、httpclient等。用工具测试,所以目标就是准备要测试数据测试脚本后直接执行即可, 在进行测试执行编写时,有如下的原则:
1.不同的接口参数覆盖不同的业务场景;
2.在后台构造合适的数据来满足接口的测试用例;
3.根据接口的返回值,断言其是否返回期望结果,并查看数据库验证;
4.测试用例涉及多个步骤的,应对涉及的步骤都验证;
5.删除测试过程中产生的结果,确保每个用例执行前都是一个清洁的环境

接口自动化实现方式有哪些?如何选择?

接口自动化:
如果是那种http协议的接口
那么第一种,使用eclipse 自己封装下httpclient ,然后自己写java脚本进行接口测试 这种要麻烦点
第二种,使用jmeter工具,这个是专门针对http接口的进行性能以及接口测试工具

testng自动化测试框架怎么用

1、前提

安装好jdk

配置好Java环境变量

安装Eclips

这些网上都有,就不再详细介绍。

2、安装TestNG插件

在线安装由于网速原因,速度较慢。下面是离线安装方式。

(1)解压eclipse-testng离线包.zip

(2)将【eclipse-testng离线包/feature】中的文件夹org.testng.eclipse_6.8.6.20130607_0745复制到【MyEclipse安装目录/features】目录下

(3)将【eclipse-testng离线包/org.testng.eclipse_6.8.6.20130607_0745】文件夹复制到【MyEclipse安装目录/plugins】目录下

(4)重启MyEclipse,Windows - show view - TestNG

3、安装Ant

(1)解压apache-ant-1.9.6-bin.zip到任意目录下


(2)配置Ant环境变量,在Path变量末尾添加:<Ant目录/bin;

二、在Eclipse中创建Java工程

1、Eclipse - File - New - Java Project,如下图,在弹窗中填入Project name,点击Finish,即可完成工程的创建。

2. 导入相关的jar包:

工程上右键 - Build Path - Configure Build Path...,如下图所示,打开Build Path配置窗口。

导入已经安装的TestNG插件,如下图所示完成testNG的导入:

3. 从资源分享链接中下载lib.zip,解压开,按下图方式导入里面的jar包。导入的这些jar包会在程序中用到。

三、使用TestNG框架编写测试用例

1. 创建src文件夹,存放测试相关的代码,在工程上右键 - New - Folder,填入文件名字:src。

2. 按照数据与代码分离和公共方法提取的原则,我的代码结构如下划分:

3. 脚本编写顺序

3.1 全局配置文件(GlobalSettings.java)

存放一些工程全局的变量,比如baseUrl、timeout等;

3.2 Http协议实现(HttpClientHelper.java)

根据项目接口使用的协议,实现相关的请求。我们的项目有两种方式,一种是使用NameValuePair的方式封装请求参数,一种是使用JSONObject的方式封装请求参数,因此针对这两种方式都做了代码实现。

3.3 接口实现(GList_API.java)

以“创建G单”为例,实现该接口:

3.4 准备测试数据(TestData.java)

为接口准备测试数据。

3.5 测试数据参数化(GListDataProvider.java),返回的参数个数需要与testsuit中函数参数个数一致。

3.6 测试用例suit(GListCURD.java)

4. 测试用例调试与执行

按照步骤三写好了所有的用例,可以进行用例的调试与执行了。

4.1 测试用例脚本调试

在步骤三的测试用例suit GListCURD.java上右键,“Debug as”或“Run as” - "TestNG Test",即可运行该脚本。

4.2 测试用例脚本执行

有两种方式可以运行该脚本,testNG或者ant。

使用testNG运行,操作如步骤4.1。

使用ant运行,需要创建xml,请参考资源库中的build.xml、smokeTest.xml。若需要生成testNG报告,还需要下载test-result.xsi文件。

4.3 美化后的运行结果report


从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

接口自动化测试环境搭建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文件构建一下试试 关于http接口自动化测试框架实现和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 http接口自动化测试框架实现的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、http接口自动化测试框架实现的信息别忘了在本站进行查找喔。

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

上一篇:关于jmeter做dubbo接口测试的信息
下一篇:中台接口设计方案(中台设计思路)
相关文章

 发表评论

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