您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
自动化测试与持续集成方案
 
 
  1183  次浏览      16
 2020-12-2  
 
编辑推荐:
本文主要介绍了什么是接口测试?什么是接口测试?接口测试的流程,编写接口测试脚本,接口持续集成等内容。
本文来自于掘金,由火龙果软件Anna编辑、推荐。

一、什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。

接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。

基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。

二、接口测试的流程

1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档

2、 获取接口测试文档后,就可以进行接口用例的编写和调试

3、 接口用例编写调试完成后,部署到持续集成的测试环境中,

4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控

5、 每日进行接口脚本的维护更新,接口异常的处理

三、编写接口测试脚本

大部分性能工具都可以用来进行接口测试,jmeter就是一个好用的性能测试工具,他也同样可以用来进行接口测试,jmeter比较适用于CGI、webservice、DB等类型的接口测试。下面以websevice api接口为例说明如何编写接口测试用例(本文侧重于接口测试平台的搭建,对于具体工具是使用只进行简单介绍,对于工具不了解的,可以自行百度):

以下是我弄的一个简单的脚本。

每个请求都加一个响应断言来判断是否达到期望。

如果用命令来执行,也很简单:

jmeter -n -t test.jmx -l test.jtl

四、接口持续集成

在这块卡了好久,主要是report展示。之前是不想再用其他工具(如:Ant, Maven ), 就想将jtl文件的报告展现出来,弄了很久没成功。最后还是向工具屈服,用的Ant来编译.

主要是配置build.xml

一个示例:

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="F:\xxxxx\Jmeter" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="F:\xxxxx\resultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="F:\xxxxx\resultLog\html" />
<!-- 生成的报告的前缀->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

<target name="all">
<antcall target="test" />
<antcall target="report" />
</target>

<target name="test">
<taskdef name="jmeter" classname= "org.programmerplanet.ant.taskdefs. jmeter .JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\test_case_path" includes="*.jmx" />
</jmeter>
</target>

<target name="report">
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter -results-detail-report_21.xsl" />

<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>

 

Jenkins 上安装 “Publish performance test result report” ,“Publish HTML reports” 的插件,配置一下。

运行。

结果如下:

如果加上一些并发,负载等,就是性能测试报告了。

性能报告的曲线展示还没弄出来,有空再看看。

补上性能测试报告:

之前一直出了个错:

Performance: Recording JMeter reports '**/*.jtl'

Performance: no JMeter files matching '**/*.jtl' have been found. Has the report generated?. Setting Build to FAILURE

Build step 'Publish Performance test result report' changed build result to FAILURE

Finished: FAILURE

导致结果出不来。后面在 Jmeter/bin 下将 jmeter.properties 中的:

jmeter.save.saveservice.output_format=csv

改成:

jmeter.save.saveservice.output_format=xml

结果就是这样的:

 
   
1183 次浏览       16
相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
大数据平台测试
微服务架构下的测试之道
从零开始掌握微服务软件测试
如何进行测试需求分析:从接收需求到用例设计
python_selenium自动化测试框架
最新课程
测试需求分析与测试用例设计
性能测试方法与技术
自动化测试框架设计高级实践
接口自动化测试方法与工具
软件测试方法与实践(贯穿案例)
更多...   
成功案例
某支付企业 单元测试与重构培训
北京 用户体验、可用性测试与评估
某军工研究单位 自动化测试方法、案例与工具
知名消费金融公司 探索性测试与测试分析
北京 航天科工某子公司 软件测试架构师
更多...