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最新版)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比

伴随着 IT 云化转型的逐步推进,越来越多的用户加入应用容器化改造的行列,并使用 Kubernetes(K8s)进行容器部署管理。然而,令不少用户感到困惑的是,由于大部分应用此前都部署在虚拟化或超融合环境&#xff0…

轻量封装WebGPU渲染系统示例<7>-材质多pass(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 …

Mac电脑窗口管理Magnet中文 for mac

Magnet是一款Mac窗口管理工具,它可以帮助用户轻松管理打开的窗口,提高多任务处理效率。以下是Magnet的一些主要特点和功能: 分屏模式支持:Magnet支持多种分屏模式,包括左/右/顶部/底部 1/2 分屏、左/中/右 1/3 分屏、…

基于51单片机的温度测量报警系统的设计与制作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、实习目的二、实习任务2.1 设计温度测量报警系统硬件电路2.2 温度测量报警系统软件编程、仿真与调试;2.3 完成温度测量报警系统的实物制作与调试…

基于定容积法标准容器容积标定中的电动针阀自动化解决方案

摘要:在目前的六氟化硫气体精密计量中普遍采用重量法和定容法两种技术,本文分析了重量法中存在的问题以及定容法的优势,同时也指出定容法在实际应用中还存在自动化水平较低的问题。为了提高定容法精密计量过程中的自动化水平,本文…

从工厂到社会:探索如何应用设计模式工厂模式

文章目录 🌟 将设计模式工厂模式运用到社会当中🍊 工厂模式在社会中的应用🎉 工厂🎉 餐厅🎉 运输 🍊 工厂模式的优势🎉 代码简洁🎉 扩展性强🎉 便于维护和管理 &#x1f…

信钰证券:华为汽车概念股持续活跃 圣龙股份斩获12连板

近期,华为轿车概念股在A股商场遭到热捧,多只股票迭创前史新高。10月23日,华为轿车概念股再度走强,到收盘,板块内圣龙股份、银宝山新涨停,轿车ETF在重仓股提振下盘中一度上涨近2%。业界人士认为,…

Day13力扣打卡

打卡记录 奖励最顶尖的 k 名学生(哈希表排序) 用哈希表对所有的positive与negative词条进行映射,然后遍历求解。tip:常用的分割字符串的操作:1.stringstream配合getline() [格式buf, string, char]2.string.find()[find未找到目标会返回npos…

javaEE -9(7000字详解TCP/IP协议)

一: IP 地址 IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物…

AOP 笔记

AOP【面向切面编程】 作用:在不惊动原始设计的基础上进行功能增强。 无侵入式编程 连接点:程序执行的任意位置,SpringAOP中,理解为方法的执行。 切入点:匹配连接点的式子,要追加功能的方法 通知(写在通…

服务运营 |论文解读: 住院病人“溢出”:一种近似动态规划方法

摘要 在住院床位管理中,医院通常会将住院病人分配到相对应的专科病房,但随着病人的入院和出院,可能会出现病人所需的专科病房满员,而其他病房却有空余床位的情况。于是就有了 "溢出 "策略,即当病人等候时间…

【目标检测】Visdrone数据集和CARPK数据集预处理

之前的博文【目标检测】YOLOv5跑通VisDrone数据集对Visdrone数据集简介过,这里不作复述,本文主要对Visdrone数据集和CARPK数据集进行目标提取和过滤。 需求描述 本文需要将Visdrone数据集中有关车和人的数据集进行提取和合并,车标记为类别0&…

记录--vue3实现excel文件预览和打印

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在前端开发中,有时候一些业务场景中,我们有需求要去实现excel的预览和打印功能,本文在vue3中如何实现Excel文件的预览和打印。 预览excel 关于实现excel文档在…

M1本地部署Stable Diffusion

下载安装 参考博客: 在Mac上部署Stable Diffusion(超详细,AI 绘画入门保姆级教程) 安装需要的依赖库 brew install cmake protobuf rust python3.10 git wget 可能中途会存在下载报错或者下载卡主的问题,需要切国内源 brew进行替换源: …

UE4/5 竖排文字文本

方法一、使用多行文本组件 新建一个Widget Blueprint 添加Text 或者 Editable Text(Multi-Line) 、TextBox(Multi-Line) 组件。 添加文字,调整字号,调整成竖排文字。 在Wrapping (换行)面板中 : 勾选 Auto Wrap te…

iphone备份后怎么转到新手机,iphone备份在哪里查看

iphone备份会备份哪些东西?iphone可根据需要备份设备数据、应用数据、苹果系统等。根据不同的备份数据,可备份的数据类型不同,有些工具可整机备份,有些工具可单项数据备份。本文会详细讲解苹果手机备份可以备份哪些东西。 一、ip…

NodeJS爬取墨刀上的设计图片

背景 设计人员分享了一个墨刀的原型图,但是给的是只读权限,无法下载其中的素材;开发时想下载里面的一张动图,通过浏览器的F12工具在页面结构找到了图片地址。 但是浏览器直接访问后发现没权限: Nginx 的 403 页面。。…

解决git action定时任务执行失败的方法

为了测试git action定时任务是否有效,你可能选择一个最近的时间测试, 但是发现怎么也触发不了,是不是觉得很苦恼。但是同样的时间,在第二天的定时任务又能成功运行。 这是什么原因? 原因就在上图,git act…

【Linux】安装配置解决CentosMobaXterm的使用及Linux常用命令命令模式

目录 一、介绍 1. 背景 2. 讲述&功能 二、Centos安装配置&MobaXterm 1. 创建 2. 安装 3. 配置 4. MobaXterm使用 三、Linux常用命令&模式 1. 常用命令 2. 三种模式 3. 命令使用&换源 4. 拍照备份 一、介绍 1. 背景 CentOS的背景可以追溯到200…

软考系列(系统架构师)- 2011年系统架构师软考案例分析考点

试题一 软件架构(质量属性效用树、架构风险、敏感点、权衡点) 【问题2】(13分) 在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险…