接口自动化测试框架详解

news2024/11/25 6:54:54

接口自动化测试框架只需要编写yaml(excel)测试用例即可完全实现零代码落地实施自动化测试。

1、核心技术

1.1 热加载封装(全网最早应用于自动化测试框架的封装技术)

1.2 requests统一请求封装

1.3 接口关联封装以及接口关联封装改进

1.4 规范yaml测试用例封装

1.5 统一接口断言封装,包括常规断言和数据库断言

1.6 yaml测试用例数据驱动封装

1.7 base_url举出路径封装

1.8 logging日志封装

1.9 接口加密封装

1.10 接口签名封装

1.11 零代码极限封装

1.12 企业级Allure报告的定制

1.13 流程用例封装,异常处理封装,常规基础模块封装等

注意事项:有关联用例,关联的上一个接口用例必须在上面(也可以放到a文件夹或者是通过修改yaml的文件名实现)

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

2、yaml编写测试用例常规可用的关键字

feature:模块名(必填)

story:接口名(必填)

title:用例标题(必填)

request:请求(必填)

method:请求方式(必填)

url:请求路径(必填)

headers:请求头

params:url之后的参数

data:表单数据

json:json数据

files:文件上传

validate:断言(必填)

codes:断言状态码

equals:相等断言

contains:包含断言

db_equals:数据断言

3、单接口测试用法(常规关键字填写接口数据)

-
    feature: 用户管理模块
    story: 获取access_token鉴权码接口
    title: 测试获取access_token鉴权码接口成功
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/token
        params: 
            "grant_type": client_credential
            "appid": wxd87yu92q8ehyd
            "secret": f7384gf785ty8394fjre98yt45
    validate: null

4、测试需要接口关联的接口(通过extract关键字实现)

4.1上一个接口提取变量使用extract关键字

extract:

        token: url(.*?)tp://101.34        (正则表达式提取)

        order_id: $.data.data[0].id        (jsonpath提取)

-
    feature: 用户管理模块
    story: 获取access_token鉴权码接口
    title: 测试获取access_token鉴权码接口成功
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/token
        params: 
            "grant_type": client_credential
            "appid": wxd87yu92q8ehyd
            "secret": f7384gf785ty8394fjre98yt45
    extract:
        access_token: $.access_token
    validate: null

4.2下一个接口使用变量(token即extract提取的变量名)

${read_yaml(token)}

-
    feature: 用户管理模块
    story: 查询标签接口
    title: 测试查询标签接口成功返回
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/tags/get
        params:
            access_token: ${read_yaml(access_token)}
    validate: null

5、测试需要数据驱动的接口(通过parametrize关键字实现)

parametrize:

        - ["order_id","username","index"]

        - ["654646","admin",0]

        - ["www","baili",1]

使用:

$ddt{token}

-
    feature: 用户管理模块
    story: 获取access_token鉴权码接口
    title: $ddt{title}
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/token
        params: 
            "grant_type": $ddt{grant_type}
            "appid": $ddt{appid}
            "secret": $ddt{secret}
    extract:
        access_token: $.access_token
    parametrize:
        - [ "title","grant_type","appid","secret" ]
        - [ "测试获取access_token鉴权码接口成功","client_credential","wxd87yu92q8ehyd","f7384gf785ty8394fjre98yt45" ]
    validate: null

6、断言

validate:断言

        codes

        equals

        contains

        db_equals

-
    feature: 用户管理模块
    story: 查询标签接口
    title: 测试查询标签接口成功返回
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/tags/get
        params:
            access_token: ${read_yaml(access_token)}
    validate: 
        codes: 200
        contains: tags

7、基础路径的配置

在config.yaml里面设置基础路径,然后再在yaml测试用例中使用热加载:${read_config(base_url)}

base_url: https://api.weixin.qq.com/cgi-bin

-
    feature: 用户管理模块
    story: 查询标签接口
    title: 测试查询标签接口成功返回
    request: 
        method: get
        url: ${read_config(base_url)}/tags/get
        params:
            access_token: ${read_yaml(access_token)}
    validate: null

8、流程用例测试方法

-
    feature: 用户管理模块
    story: 获取access_token鉴权码接口
    title: 第一个测试步骤
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/token
        params: 
            "grant_type": client_credential
            "appid": wxd87yu92q8ehyd
            "secret": f7384gf785ty8394fjre98yt45
    validate: null
-
    feature: 用户管理模块
    story: 获取access_token鉴权码接口
    title: 第二个测试步骤
    request: 
        method: get
        url: https://api.weixin.qq.com/cgi-bin/token
        params: 
            "grant_type": client_credential
            "appid": wxd87yu92q8ehyd
            "secret": f7384gf785ty8394fjre98yt45
    validate: null

9、总结 

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

R语言——赋值(= ,<- ,<<-)

R语言 R语言——赋值&#xff08; &#xff0c;<- &#xff0c;<<-&#xff09; 文章目录 R语言一、 与 <- 的区别二、 <<- ,向上一环境层写入变量 R语言中" <- " 与 " " 都可以用来赋值&#xff0c;但R中建议使用" <- “…

图片如何制作gif动画?1分钟教会你快速制作gif

Gif动态格式图片是当下非常流行的&#xff0c;它包含了多帧图像循环播放产生了动态的效果。Gif动图能够很好的暴打自己内心的想法&#xff0c;传递信息。那么&#xff0c;这种gif动画图片是怎么制作的呢&#xff1f;很简单&#xff0c;通过使用gif动态图片制作&#xff08;http…

旅游景点咨询系统的设计与实现

旅游景点咨询系统的设计与实现 /*** file 旅游景点咨询系统的设计与实现* author jUicE_g2R(qq:3406291309) * * copyright 2023.10* COPYRIGHT 原创技术笔记&#xff1a;转载需获得博主本人同意&#xff0c;且需标明转载源** language …

K邻近算法(KNN,K-nearest Neighbors Algorithm)

文章目录 前言应用场景欧几里得距离&#xff08;欧氏距离&#xff09;两类、单一属性&#xff08;1D&#xff09;两类、两种属性&#xff08;2D&#xff09;两类、两种以上属性&#xff08;>3D&#xff09; Examples in R再来一个补充一下什么是变量 什么是变量&#xff1f;…

Windows网络系统架构

在介绍Windows网络体系架构之前&#xff0c;我首先介绍一下Windows中的两个重要编程规范——TDI&#xff0c;NDIS.&#xff0c;然后再介绍网络体系的架构。TDI&#xff0c;Transport Driver Interface&#xff0c;传输驱动程序接口。/Windows/System32/Drivers/Tdi.sys。在实现…

VSCode自定义代码块详解

第一步&#xff1a;点击文件-首选项-用户代码片段 第二步&#xff1a;选择代码块作用域的文件类型 类型一&#xff1a;全局作用域 这种类型的代码块是创建在vscode软件内部的文件。是跟随这当前安装的vscode这个软件的&#xff0c;不会随着项目的关闭而失效&#xff0c;会一直存…

Java多线程笔记

文章目录 线程简介&#xff08;Process AND Thread&#xff09;本章核心概念 线程实现&#xff08;重点&#xff09;线程创建&#xff08;Thread、Runnable、Callable&#xff09;1.Thread class 继承Thread类&#xff08;重点&#xff09;总结&#xff1a;注意案例&#xff1a…

568A和568B两种线序

现状 现在大家都是采用568B的线序 线序 标准568A&#xff1a;橙白-1&#xff0c;橙-2&#xff0c;绿白-3&#xff0c;蓝-4&#xff0c;蓝白-5&#xff0c;绿-6&#xff0c;棕白-7&#xff0c;棕-8 标准568B&#xff1a;绿白-1&#xff0c;绿-2&#xff0c;橙白-3&#x…

GB28181学习(七)——设备视音频文件检索

要求 文件检索主要用于区域、设备、录像时间段、录像地点、录像报警为条件的查询&#xff1b;用Message消息发送检索请求和返回查询结果&#xff0c;传送结果的Message消息可以发送多条&#xff1b;文件检索请求和应答命令采用MANSCDP协议格式定义&#xff1b; 流程 目录检索…

电商爬虫API快速入门指南

​电子商务爬虫API​是一个公共数据爬虫API&#xff0c;旨在通过大多数电子商务网站收集大量实时本地化数据并搜索信息。这个数据收集工具作为一个值得信赖的解决方案&#xff0c;实现通过最复杂的电子商务网站收集公共信息。电子商务爬虫API适用于商业用例&#xff0c;诸如价格…

对Python3.8配置OpenCV4.5.5中

已下载好Pycharm3.8&#xff0c;但是Pycharm3.8中还未配置OpenCV&#xff0c;这里直接在命令提示符中输入 pip install opencv-python 后回车 来下载opencv_python进行配置。

[23] IPDreamer: Appearance-Controllable 3D Object Generation with Image Prompts

pdf Text-to-3D任务中&#xff0c;对3D模型外观的控制不强&#xff0c;本文提出IPDreamer来解决该问题。在NeRF Training阶段&#xff0c;IPDreamer根据文本用ControlNet生成参考图&#xff0c;并将参考图作为Zero 1-to-3的控制条件&#xff0c;用基于Zero 1-to-3的SDS损失生成…

台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法

台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法 台达触摸屏(B07S410)在上载程序时(显示No response from HMI)我以前的电脑是WIN7的,从来没出现过这样的问题,现在换成win10的,怎么都不行,(USB显示是一个大容量存储)换一台电脑(win10)有些行,有些不行…

二阶RC滤波器

二阶RC低通滤波器 二阶RC低通滤波器是一种常用的电路&#xff0c;用于滤除输入信号中高频部分&#xff0c;只保留低频部分。 一、原理 二阶RC低通滤波器由两个电阻&#xff08;R1, R2&#xff09;和两个电容&#xff08;C1, C2&#xff09;组成&#xff0c;他们的原理基于RC…

对地址解析协议ARP进一步探讨

之前在讨论MAC地址和IP地址时&#xff0c;顺便对ARP协议做了初步的总结 &#xff08;计网第三章&#xff08;数据链路层&#xff09;&#xff08;四&#xff09;&#xff08;MAC地址和IP地址、ARP协议、集线器和交换机&#xff09;&#xff09;&#xff0c;但是当时对ARP请求的…

Java线程安全问题

1、什么是线程安全问题 2、用程序模拟线程安全问题 代码说明&#xff1a; Account代表账户类DrawThread代表线程类ThreadTest运行线程类 Account类&#xff1a; package ThreadSave;public class Account {private double money; //余额private String cardId; //卡号publi…

基于天牛须优化的BP神经网络(分类应用) - 附代码

基于天牛须优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于天牛须优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.天牛须优化BP神经网络3.1 BP神经网络参数设置3.2 天牛须算法应用 4.测试结果&#x…

使用图像处理跟踪瞳孔(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

比较和同步数据库架构和数据:MssqlMerge Pro Crack

比较和同步数据库架构和数据 适用于Oracle、MySQL 和 MariaDB、SQL Server、PostgreSQL、SQLite、MS Access和跨 DBMS 场景 业界领先的文本比较工具中常用的两面板 UI 快速过滤器显示所有/新/更改/新更改 合并两个方向的更改 轻量级&#xff1a;跨 DBMS 工具小于 20 MB&#xf…

【Java学习之道】Swing框架与组件介绍

引言 在本篇文章中&#xff0c;我们将重点介绍Swing框架及其组件。Swing是一个用于构建图形用户界面的Java库&#xff0c;它提供了丰富的组件和布局管理器&#xff0c;可以帮助你轻松地创建出漂亮、功能强大的界面。无论你是刚开始学习Java还是已经有一些经验&#xff0c;我相…