接口测试 [分享] 自动化测试与持续集成方案--Jmeter 测试接口及性能

news/2024/11/28 17:43:51/

目录

前言:

一、什么是接口测试?

二、接口测试的流程

三、编写接口测试脚本

四、接口持续集成

补上性能测试报告:


前言:

 接口测试是软件测试中的重要环节,它用于验证系统的不同组件之间的通信和数据传输是否正常。自动化测试和持续集成方案可以帮助测试团队更高效地进行接口测试,并确保系统的性能和稳定性。

一、什么是接口测试?

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
  接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
  基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。

二、接口测试的流程

  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

结果就是这样的:

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)

相信能使你更好的进步!

点击下方小卡片

 


http://www.ppmy.cn/news/853774.html

相关文章

SpringBoot 定时任务 @Scheduled 集群环境优化 (使用分布式锁, 注解形式)

SpringBoot提供了 Schedule模块完美支持定时任务的执行 在实际开发中由于项目部署在分布式或集群服务器上 会导致定时任务多次触发 因此&#xff0c;使用redis分布锁机制可以有效避免多次执行定时任务 核心方法是org.springframework.data.redis.core包下的 setIfAbsent() 方…

万字详解 Stream 流式编程,写代码也可以很优雅

一、引言 流式编程的概念和作用 Java 流(Stream)是一连串的元素序列&#xff0c;可以进行各种操作以实现数据的转换和处理。流式编程的概念基于函数式编程的思想&#xff0c;旨在简化代码&#xff0c;提高可读性和可维护性。 Java Stream 的主要作用有以下几个方面&#xff…

什么是卡式报表,如何制作卡式报表

什么是卡式报表&#xff0c;通俗的说&#xff0c;就是卡片样式的报表&#xff0c;如同名片一般&#xff0c;看起来简单明了。有时候&#xff0c;我们在浏览一些学生&#xff0c;员工信息表的时候&#xff0c;看到每个人的信息就是一行&#xff0c;然后密密麻麻的一行行的排下去…

科学计算机上的m怎么消除,如何消除得力计算器上的FIX

如何消除得力计算器上的FIX以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01; 如何消除得力计算器上的FIX 按3次Mode 再按3 然后按1 OK 如何消除计算器上的m 按MC键,或有的是MRC键,有些科学计算…

家用计算机怎么关机,得力计算器怎么关机

得力计算器是可以自动关机的。 原因它是双太阳光能&#xff0b;5号电池&#xff0c;电量消耗比较少&#xff0c;而且有太阳能电池补充电能&#xff0c;当没有操作时&#xff0c;内部的关机程序就起作用&#xff0c;等时间一到就切断电源达到自动关机的目的。 扩展资料&#xff…

元宇宙虚拟农场牧场认养种植理财复利源码

元宇宙虚拟农场牧场认养种植理财复利源码——探索数字时代的新型投资方式 随着信息技术的快速发展和数字经济的崛起&#xff0c;元宇宙成为了一个备受关注的话题。元宇宙是一种虚拟现实的概念&#xff0c;它是一个模拟的数字世界&#xff0c;里面可以进行各种虚拟体验和交互。…

尚硅谷Docker实战教程-笔记13【高级篇,Docker轻量级可视化工具Portainer】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇&#xff0c;Docker理念简介、官网介绍、平台入门图解、平台架构图解】…

--k和k--的区别

--k和k--区别 问题描述方法总结 问题描述 很多程序初学者都会有这个疑问&#xff0c;–k和k–有什么区别呢&#xff0c;简单的解释是&#xff1a; –k就是先让k减去1&#xff0c;再把k-1的结果给–k k–是先把k的结果给k–&#xff0c;然后k自己减1 我来通过实际代码解读一下。…