Jmeter的接口自动化测试

在去年实施了一年的三端(PC、无线M站、无线APP【Android、IOS】)后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成。今天做个简单的分享。

  在开始自动化投入前,需要先问几个问题

  1. 为什么要投入人力做自动化?
  2. 以及有UI自动化的情况下,为什么还要做接口自动化?
  3. 测试人员需要有代码能力吗?如果需要,需要什么程度的代码能力?

  以上都是开放式问题,有机会再相互探讨。

  在打算实施接口自动化后,需要解决如下几个问题

  1. 接口自动化要测试哪些接口,我们要怎么测试这些接口,每个接口需要分别覆盖什么?
  2. 工欲善其事必先利其器,接口自动化测试如何选型工具?很多工具都具有接口测试功能,如何挑选工具
  3. 如何做到持续集成?

  接口测试从测试关注点上看可以分为单接口测试以及联合接口测试

  单接口测试关注内容为:

  1. 响应状态
  2. 响应时间 
  3. 请求数据格式:协议、编码、字段
  4. 响应数据格式:编码、字段

  联合接口测试关注多个接口组合特定业务场景测试;

  在进行持续集成的接口自动化测试中,我们重点关注的是多个接口联合测试,即业务场景实现过程中各个依赖接口的自动化测试,而在手工测试中,去重点关注单个接口的各个测试内容;

  测试工具的比较

  在工具选择上我们也比较了目前市面上比较常用的测试工具以及自研方案

  从调研情况看,选择还是非常多,市面上有非常成熟的工具供选择,也可以自研工具平台。在难以取舍情况下,我们列出如上的几个维度对工具进行横向比较,在综合考虑我们团队的情况,选择了jmeter进行接口自动化开发工具

  整个接口自动化就围绕如下内容,其中Java是团队的第一编程语言,使用Jenkins进行任务管理以及调度,达到课持续集成,使用ant作为构建桥梁,连接jenkins和jmeter

  

  工具选择好后,就开始设计系统的业务流程以及设计标准了,虽然是测试,但是也要以开发标准对待写代码,开玩笑的说以专业精神对待业余爱好

  首先对于一个可持续集成测试系统,首先要易于使用,能很方便的执行、查看测试结果以及定位测试问题;还要团队成员,哪怕别的团队成员也可以很方便的使用本系统,不需要具备很多的专业背景或者深入的了解系统细节才能使用;

  整个系统的flow如下,jenkins作为最上层的入口,负责结果展示、发生邮件、启动执行系统,ant根据执行的target,调动jmeter执行自动化任务,每个自动化任务需要执行的数据集从另一套系统,我们内部叫奥卡姆剃刀系统读取测试数据,执行结果一种是标准的junit执行报告结果,用于生成简易的测试报告,另一份是自定义的测试结果集,用于分析测试数据以及往第三方关联系统分发测试结果

  

    

   数据流程定义好后,就是实际的编码设计阶段了,由于做接口自动化中,特别是设计复杂业务数据时,需要自定义开发一些扩展包,beanshell是我们常用的,但是这个有一个问题就是beanshell不支持即时的语法检查,只有在运行期间出错了才能知道语法有问题,也无法对脚本进行调试查看运行期间的各种数据状态,针对这个问题,我们采用如下设计方式进行解决,

  采用PO模型方式组织代码,基于mvc设计模式开发代码,将jmeter作为view层,只负责业务流程,所有的实现在扩展包里实现,扩展包使用intellij idea开发调试,测试通过后打包给jmeter使用,调试和测试也在idea下完成,使用junit作为测试单元,使用测试桩完成所有接口以及业务逻辑的调试

展示了部分结果如下

后面有空再写写实现的一些细节以及遇到的坑吧,感慨下今年过的好快,好几天就结束了,年前定下的小目标还记得嘛  哈哈

后续打算出个jmeter培训教程,不知道这方面是否有需求

Python接口自动化测试零基础入门到精通(2023最新版)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/151735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS加密/解密之逻辑运算符加密进阶篇

前言 ​ 前篇给大家介绍了运算符不为人知的基础知识。他们的各种表达形式,今天我们从这个基础上,继续进一步告诉大家,如何对字符串进行加密处理。还是那句话,技术人不废话,直接晒代码。 示例源代码 // 字符串加密示…

数据可视化报表分享:区域管理驾驶舱

在零售数据分析中,区域管理驾驶舱报表是用来分析企业运营数据,以制定销售策略和提高利润。因此这张报表需要整合大量数据,数据整合、分析、指标计算的工作量极大,在讲究高效率、高度及时性的大数据时代,BI数据可视化分…

kibana监控

采取方式 Elastic Agent :更完善的功能 Metricbeat:轻量级指标收集(采用) 传统收集方法:使用内部导出器收集指标,已不建议 安装 metricbeat Download Metricbeat • Ship Metrics to Elasticsearch | E…

基于人工蜂群算法的无人机航迹规划-附代码

基于人工蜂群算法的无人机航迹规划 文章目录 基于人工蜂群算法的无人机航迹规划1.人工蜂群搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用人工蜂群算法来优化无人机航迹规划。 …

vm_flutter

附件地址 https://buuoj.cn/match/matches/195/challenges#vm_flutter 可以在buu下载到。 flutter我也不会,只是这个题目加密算法全部在java层,其实就是一个异或和相加。 反编译 package k;import java.util.Stack;/* loaded from: classes.dex */ pu…

第13期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

管理类联考——数学——汇总篇——知识点突破——数据分析——记忆

文章目录 考点记忆/考点汇总——按大纲 整体目录大纲法记忆宫殿法绘图记忆法 局部数字编码法对号不对号 归类记忆法重点记忆法歌决记忆法口诀:加法分类,类类相加;乘法分步,步步相乘。 谐音记忆法涂色 理解记忆法比较记忆法转图像记…

docker部署prometheus+grafana服务器监控(二) - 安装数据收集器 node-exporter

在目标服务器安装数据收集器 node-exporter 1. 安装数据收集器 node-exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar xvf node_exporter-1.6.1.linux-amd64.tar.gzmv node_exporter-1.6.1…

有一个带头结点的单链表L,设计一个算法使其元素递增有序

有一个带头结点的单链表L,设计一个算法使其元素递增有序 代码思路: 我这里懒得搞那个指针了,直接遍历一遍链表,把链表的元素复制到数组arr里面 对数组A进行一下排序,排完之后再把元素复制到L里面。 至于排序你用啥算…

vue的双向绑定的原理,和angular的对比

目录 前言 Vue的双向绑定用法 代码 Vue的双向绑定原理 Angular的双向绑定用法 代码 Angular的双向绑定原理 理解 图片 关于Vue的双向绑定原理和与Angular的对比,我们可以从以下几个方面进行深入探讨: 前言 双向绑定是现代前端框架的核心特性之…

AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码

AI与Prompt:解锁软件开发团队的魔法咒语 写在最前面论文:基于ChatGPT的自协作代码生成将团队协作理论应用于代码生成的研究自协作框架原理1、DOL任务分配2、共享黑板协作3、Instance实例化 案例说明简单任务:基本操作,生成的结果1…

程序的编译和链接

目录 翻译环境 linux下的测试 ​编辑 预定义符号 执行环境 #define定义宏 #和## # ## 宏参数的副作用 宏和函数对比 优点 缺点 #undef 条件编译 头文件包含 在标准c的任何实现中,存在两种环境——翻译环境和执行环境 翻译环境 翻译环境生成目标文件…