接口自动化测试

接口自动化测试

    • 为什么要做自动化测试?
    • 如何做自动化测试
    • 测试工具

本文只讲方法,不会太多关注具体实用细节。

为什么要做自动化测试?

当接口的功能很复杂、很灵活、频繁变更时,代码稍微有些变更,影响范围很难短时间内确定,系统质量无法保证,能够最快想到的办法就是做好自动化测试用例的编写,一般大厂都有测开的岗位对接口进行测试,甚至定时对所有接口进行自动化测试,在测试环境测试接口的可用性以及正确性。经过自动化测试的系统是否一定没有问题呢?答案否。这和设计的用例,以及用例覆盖多少功能有关。但至少能确保不会出现大问题,不会和实际可用性功能偏离太多。

优秀的测试在测试前会了解系统的功能用例有哪些、需要测试的覆盖范围、以及系统是如何设计的、准备测试数据等,通过全方位的思考,针对主业务流程,以及可能存在问题的地方设计测试用例。类似程序代码的复用性一样,测试用例是否可以毫不费力的重复使用,那就需要使用到专业的技术了,相比较手动测试,自动化测试用例一次编写,只要系统长期使用,随时测试。

如何做自动化测试

如果站在系统测试的角度,整体的系统测试必不可少。但是通常在开发过程中,每个开发会针对自己开发的代码做单元测试,如果没有系统开发owner, 每个开发只顾自己的代码,系统整体测试bug不可避免。
最近本人开发一个接口很灵活的系统,接口的入参和出参都是动态变化的,和用户的人机交互的对话数据、以及用户自有属性数据集相关。这个横向项目虽然系统本身不复杂,但是交叉了太多的业务领域,导致笔者无法从中抽身,犹如陷入了沼泽地大坑,越陷越深;我很想从中爬出来,这就是写本文的真正原因。
测试前无他,设计测试用例,一个测试用例主要包含了前提条件、操作步骤、预期结果等。
设计用例需要考虑到系统之间是有相互依赖的,数据与数据之间有属性的关联。通过合理的数据管理、数据模拟、测试用例设计、执行顺序管理、前置条件设置、清理和恢复操作以及并行执行等方法,可以有效地解决自动化测试中的测试用例依赖问题。

针对测试数据依赖的问题,有不同的测试方式:

  1. 单系统测试
  2. 系统集整体测试

单系统测试比较简单,只需要关注此系统的功能逻辑是否正常即可,对于其他系统和数据的依赖,完全可以采用mock的方法,否则核心和入口强相关功能就需要系统集测试。
系统集群测试表示一个功能用例需要涉及到多个系统之间的交互,影响测试结果的变量非常多。

相比较系统集群测试,单系统只需要考虑此系统的输入和输出即可,测试过程中,最复杂的事情是构造测试用例的前置条件,以下是不同方法可能造测试工具轮子的方向,区别在于测试前的数据依赖是如何解决的:

  1. mock依赖接口
  2. 使用切面mock方法
  3. 修改db数据
    单系统的数据来源无非是接口、配置或者db,通过修改或者mock数据满足测试用例的前置条件。
    最有难度的是切面mock方法,可能只有程序员自己才了解自己写了什么代码,针对自己写的方法专门做方法mock。

测试工具

系统测试工具有很多,有很老的测试工具loadRunner,也有一部分公司使用编程工具进行测试,这需要了解更多的系统设计细节。

  1. 接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
  2. web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;

大部分测试工具使用到python,python是一门封装性和自然语言程度很强的编程语言,语言都是相通的,学过任何一门OO语言的人都可以很快的上手。使用测试框架后,只需要专注测试用例程序编写,运用好测试工具,随时出测试报告结果

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

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

相关文章

网工内推 | 深圳网工,国企,最高20k,六险一金,NA以上认证

01 沛顿科技(深圳)有限公司 🔷招聘岗位:网络工程师 🔷岗位职责: 1、负责网络设备管理及维护,确保网络系统的稳定运行; 2、负责有效规划及实施网络布线系统; 3、负责服务…

打造你的跨境电商平台:从pandabuy的成功看如何开发淘宝代购集运系统

在当今全球化的电商浪潮中,跨境购物已成为一种趋势。pandabuy作为一个成功的跨境独立站,其淘宝代购集运系统凭借高效的服务和优质的用户体验广受欢迎。对于希望建立类似平台的创业者来说,深入分析pandabuy的成功经验,并运用于自身…

LV、古驰奢侈品跌落神坛!2024消费风向彻底变天!2024创业新风口!2024创业小成本项目!

LV下滑6%、古驰暴跌28%,奢侈品在华越来越卖不动,外媒开始着急了!就在前段时间,美媒罕见发声,表示今年1季度特别困难,有奢侈品公司在华负增长高达30%。还说如何提升销量,是当下奢侈品牌在华的头等…

使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集

1, 问题:本来是好的,突然编译运行报错,说是确少包, 解决方案:重启以后好了 2,有完美的马鞍波,为什么不能够转动呢? 原因是我这里模型的问题,我计算出来的是占…

前端请求XMLHttpRequest详解

文章导读:AI 辅助学习前端,包含入门、进阶、高级部分前端系列内容,当前是 javascript 的部分,瑶琴会持续更新,适合零基础的朋友,已有前端工作经验的可以不看,也可以当作基础知识回顾。 这篇文章…

全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展

6月21日,省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春,四川邮电职业技术学院党委副书记、校长冯远洪,四川邮电职业技术学院党委委员、副校长程德杰等出席…

业务场景问题二:部分业务场景问题(简)

在面试环节,通常面试官会问一些企业级开发项目中的场景问题,大致可分为以下几个部分,本章作为简易引导,不作详细的技术解答。 面试的业务场景问题 处理亿级数据库: 数据库分库分表:使用分片技术将数据按照…

Docker环境安装anythingllm

拉镜像 docker pull mintplexlabs/anythingllm建目录 export STORAGE_LOCATION$HOME/anythingllm && \ mkdir -p $STORAGE_LOCATION && \ touch "$STORAGE_LOCATION/.env"检查目录具有写权限 # 为目录anythingllm赋写权限 chmod 777 anythingllm 启…

探索Scala的尾递归优化:性能提升的秘诀

探索Scala的尾递归优化:性能提升的秘诀 引言 在函数式编程中,递归是一种常见的编程范式。然而,传统的递归可能会因为堆栈溢出而导致性能问题。Scala作为一门支持函数式编程的语言,提供了尾递归优化的特性,这使得递归…

PCL笔记二 之VS环境配置(不同版本Debug+Release编译)

PCL笔记二 之VS环境配置(不同版本Debug+Release编译) PCL官网:https://github.com/PointCloudLibrary/pcl/releases众所周知,PCL是一个用于点云处理并且依赖不少三方库的一个算法库,同时在编译配置环境时也很复杂,因此这里想整理一下不同版本对应的环境配置过程,版本如下…

力扣921. 使括号有效的最少添加

Problem: 921. 使括号有效的最少添加 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义int变量res、need分别记录需要插入的左括号数和所需与左括号配对的右括号数; 2.遍历字符串: 2.1.若当为左括号,则need,表示…

eslint版本9.0之后配置方法

在eslint9.0之后,迎来版本大更新。首先是抛弃了自带的规则(没了我喜欢的git standard风格),其次是配置又更新了,改动有点大,重新捋了一遍之后,附上最新的eslint配置过程。 初始化命令 此次试验…

[word] 如何在word中插入地图? #学习方法#其他

如何在word中插入地图? 人事部门在给即将入职的新员工发送入职资料时,为了方便新员工能快速找到公司的具体位置,一般都会在word资料中插入公司所在位置的地图。今天,小编就分享一个在word中插入地图的方法。 第一步:…

企智汇软件:专业项目管理系统,一体化PaaS平台!快速落地项目!

在快速变化的市场环境中,项目管理不再是简单的任务分配和时间跟踪,它更是一门需要精准决策、高效沟通和智能协作的管理工具。然而,面对日益复杂的项目需求、跨部门的协作挑战以及海量的信息数据,传统的项目管理方式往往显得力不从…

HTML/CSS 基础

1、<input type"checkbox" checked> checked 默认选中为复选框 2、表格中的标题<caption> 3、文字标签直接加 title 4、<dl>为自定义列表的整体&#xff0c;包裹<dt><dd> <dt>自定义列表的主题 <dd>主题的每一项内容 5、…

数值分析笔记(三)函数逼近

最佳平方逼近 函数逼近是使用一种简单易算的函数来近似表示一个复杂函数。 该问题可转化为求解线性方程组 G n C F n ​ G_{n}CF_{n}​ Gn​CFn​​ 其中&#xff0c;系数 C ( c 0 , c 1 , ⋯ , c n ) T , F n ( ( f , φ 0 ) , ( f , φ 1 ) , ⋯ , ( f , φ n ) ) T C(c…

【Java】解决Java报错:IllegalMonitorStateException in Synchronization

文章目录 引言一、IllegalMonitorStateException的定义与概述1. 什么是IllegalMonitorStateException&#xff1f;2. IllegalMonitorStateException的常见触发场景3. 示例代码 二、解决方案1. 确保在同步代码块或方法中调用wait()、notify()和notifyAll()2. 使用同步方法3. 使用…

Linux系统学习——指令三

Linux系统学习——指令三 Linux系统学习——指令三chmod — 文件执行权限添加文件执行权限去除文件执行权限 查找文件中特定关键字使用vi编辑文件并查找特定关键字文本文件查找特定关键字1: 使用 grep 命令2: 使用 find 命令3: 使用 awk 命令4: 使用 sed 命令5: 使用 ag 命令&a…

非强化学习的对齐方法

在文章《LLM对齐“3H原则”》和《深入理解RLHF技术》中&#xff0c;我们介绍了大语言模型与人类对齐的“3H原则”&#xff0c;以及基于人类反馈的强化学习方法&#xff08;RLHF&#xff09;&#xff0c;本文将继续介绍另外一种非强化学习的对齐方法&#xff1a;直接偏好优化&am…

Vulnhub靶场DC-4练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 爆破登录2. 命令执行3. 反弹shell4. hydra爆破ssh5. 提权 0x04 总结 0x00 准备 下载链接&#xff1a;https://download.vulnhub.com/dc/DC-4.zip 介绍&#xff1a; DC-4 is another purposely built …