全网最牛,打通接口自动化测试框架详细,一篇足够

news2024/11/24 7:43:15

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

接口自动化测试开展

工具选择:
Python/Java + Requests + Unittest/Pytest + HTMLTestRunner/Allure
RobotFramework:关键词驱动的自动测试框架
基于 Web 的自动化测试平台(公司自主研发,成本较高,方便不懂编程也能使用)

自动化测试工具有很多,每种工具都有各自的优缺点,选择适合自身实际情况的框架,落地实施才是重点。

这里使用 Python + Requests + Pytest + Allure

接口自动化测试实战

接口信息:

名称:全国高校信息查询接口
描述:用于查询全国高校信息
Host:www.iamwawa.cn
Request URL:/home/daxue/ajax
Request Method:POST
Content-Type:application/x-www-form-urlencoded
headers:user-agent:Chrome

参数:

名称类型是否必填描述
typeStringname,根据名称查询
keywordString高校名称,如:中南大学

请求示例:

POST /home/daxue/ajax HTTP/1.1
Host: www.iamwawa.cn
user-agent: Chrome
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=sjsrn0drje6ds5fq9kouoo2r23
Content-Length: 54

type=name&keyword=中南大学

响应示例:

{
    "status": 1,
    "info": "查询成功!",
    "data": [
        {
            "id": "1735",
            "name": "中南大学",
            "code": "4143010533",
            "department": "教育部",
            "city": "长沙市",
            "level": "本科",
            "remark": ""
        }
    ]
}

线性脚本

import requests

res = requests.post(url="https://www.iamwawa.cn/home/daxue/ajax",
                    headers={"user-agent": "Chrome"},
                    data={"type": "name", "keyword": "中南大学"})
assert res.status_code == 200
res_json = res.json()
print(res_json)
assert res_json["status"] == 1

使用以上代码,最基础最简单的接口测试就做起来了,好的开始就是成功的一半。

但是,问题也随之而来,线性脚本的缺点也暴露出来了:

测试的输入和断言都是捆绑在脚本中,易读性差;
无共享或重用脚本,可复用性低;
线性脚本修改代价大,维护成本高,不便于后期优化;
容易受软件变化的影响,容易受意外事件的影响,引起整个测试失败;

所以,下一步就是如何优化线性脚本,也就是如何实现代码的高内聚低耦合,也是接口自动化测试框架要解决的问题。

接口自动化测试框架

常用框架:Python+requests+pytest+yaml+alluer+Jenkins;

D1

base_api.py:对 Requests 库进行二次封装,完成对 api 的驱动

api:继承 base_api,将 http 请求接口封装成 Python 方法

utils:CommonUtil,公共模块,将一些公共函数、方法以及通用操作进行封装,如:日志模块、yaml 操作模块、时间模块

config:配置文件模块,配置信息存放,如:URL、Port、Headers、Token、数据库信息等

data:测试数据模块,用于测试数据的管理,数据与脚本分离,降低维护成本,提高可移植性,如:yml 文件数据

cases:测试用例模块,用于测试用例的管理,这里会用到单元测试框架,如:Pytest、Unittest

run.py:批量执行测试用例的主程序,根据不同需求不同场景进行组装,遵循框架的灵活性和扩展性

logs:日志模块,用于记录和管理日志,针对不同情况,设置不同的日志级别,方便定位问题

reports:测试报告模块,用于测试报告的生成和管理,如:基于 Allure 生成的定制化报告

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能迎接成功的喜悦;只有不断努力,才能迈向辉煌的未来;只有坚持奋斗,才能实现人生的价值。相信自己,勇往直前,你定能创造出属于自己的辉煌!

只有不断超越自己的极限,才能看到无限的可能;只有坚持拼搏的脚步,才能走向辉煌的未来。相信自己,勇往直前,奋斗不息,必将收获辉煌的人生。

只有拼尽全力,才能看到无限可能;只有勇往直前,才能实现梦想;只有坚持不懈,才能成就辉煌。奋斗吧,你的努力终将开启属于自己的辉煌篇章!

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

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

相关文章

原型设计用得最多的是PS吗?该如何画原型?

在产品开发的前期工作中,产品经理或设计师通常需要进行原型设计工作,创建一个可交互和可视化的原型,以更准确地表达他们的设计构思和想法,并为项目顺利递交给开发人员做好准备。进行原型设计时,使用设计工具来画原型图…

计算机常识

文章目录 1. 计算机存储单位换算2. 为什么我买的256内存,实际不足256内存?3. 32位和64位操作系统支持内存 1. 计算机存储单位换算 1Byte 8bit 1KiB 1024 Byte 1MiB 1024 KiB 1048576 Byte 1GiB 1024 MiB 1TiB 1024 GiB 2. 为什么我买的256内存&a…

2023.07.04 homework

到高中前,大多数都还算可以,大多数娃娃主要还是兴趣和学习细节问题

SciencePub学术 | 计算机综合类重点SCIE征稿中

SciencePub学术 刊源推荐: 计算机综合类重点SCI&EI征稿中!进展顺利、极速录用。信息如下,录满为止: 一、期刊概况: 计算机综合重点SCIE 【期刊简介】IF:1.0-1.5,JCR4区,中科院4区&#xf…

Neighborhood Contrastive Learning for Novel Class Discovery (CVPR 2021)

Neighborhood Contrastive Learning for Novel Class Discovery (CVPR 2021) 摘要 在本文中,我们解决了新类发现(NCD)的问题,即给定一个具有已知类的有标签数据集,在一组未标记的样本中揭示新的类。我们利用ncd的特性构建了一个新的框架&am…

setContentView DecorView Activity生命周期

DecorView DecorView是Android中的一个重要类,它是View系统的根View,用于承载应用程序的所有视图层级。下面是一些关于DecorView的信息和相关链接: 1、DecorView是Android系统中的顶级View,它是Window的根视图,负责显…

排序算法解析

常见的排序算法包括以下几种: 冒泡排序(Bubble Sort):重复比较相邻的两个元素,将较大的元素逐渐向后移动,直到整个序列有序。 选择排序(Selection Sort):从未排序部分选…

Nginx负载均衡、虚拟主机

目录 常用的6种负载均衡算法 轮询算法(round robin)默认 权重(weight) 响应时间(fair) 连接数(least_conn) IP_hash url_hash(第三方) 开发优选:一致性哈希 安装步骤: 虚拟主机 常用的6种负载均衡算法 轮询算法(round robin)默认 轮询方式&a…

MMaction2 使用记录1——训练及测试

目录 训练及测试 Training 在你的 PC上训练 Training 多 GPUs Test 训练及测试 Training 在你的 PC上训练 你可以使用tools/train.py在一台有CPU和可选GPU的机器上训练一个模型。 下面是该脚本的完整用法: python tools/train.py ${CONFIG_FILE} [ARGS] 默…

基于Java出租车管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

2023RPA最佳实践案例之:实在智能助力杭州银行打造数字员工智能辅助平台

导语: 近期,实在智能荣登"2023爱分析RPA最佳实践案例"榜单。此次评选活动旨在表彰在RPA领域具备实践领先性、案例创新性、应用成熟度、价值创造等优点的企业和厂商,实在智能以其为杭州银行打造的RPA数字员工解决方案作为目前 RPA …

一天吃透操作系统面试八股文

内容摘自我的学习网站:topjavaer.cn 操作系统的四个特性? 并发:同一段时间内多个程序执行(与并行区分,并行指的是同一时刻有多个事件,多处理器系统可以使程序并行执行) 共享:系统中…

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 回归预测 | MATLAB实现PSO-DNN粒子…

一文教你搞懂性能测试常见指标

目录 1. 性能指标分类 2. 系统性能指标 2.1 响应时间 2.2 系统处理能力 2.3 吞吐量 2.4 并发用户数 2.5 错误率 3. 资源性能指标 3.1 CPU 3.2 内存 3.3 磁盘吐吞量 3.4 网络吐吞量 4. 中间件指标 5. 数据库指标 6. 稳定性指标 7. 可扩展性指标 8. 可靠性…

谷歌浏览器Crx插件库-https://crxdl.com/

地址:https://crxdl.com/ postman插件:talend json插件库:csdn插件 抓取视频:猫抓

C++primer(第五版)第十章(泛型算法)

10.1概述 大多数算法定义在头文件algorithm中.另外头文件numeric中定义了一组数值泛型算法. 一般情况下算法不直接操作容器,而是通过迭代器来对元素进行处理,因此迭代器令算法不依赖容器,但算法依赖于元素类型的操作. 泛型算法本身不会执行容器的操作,它们只会运行于迭代器之…

XD教程笔记

一、快捷键 选择: V 粘贴外观: ctrl alt V 矩形: R 组件: ctrl K 椭圆: E 向某一方向对齐: ctrl shift 方向键 钢笔: P 100%显示: ctrl 1 文本: T 锁定&a…

SAP ABAP 查表数据接口

查 SAP 表数据的接口 1.使用范例: 字段注释QUERY_TABLE查询的表名FIELDNAME查询的字段ROWCOUNT查询的行数ROWCOUNT查询的行数OPTIONS查询条件FIELDS查询字段的释义和字符长度DATA查询的数据TOTALROWS符合条件数据的行数 FIELDS 结果: 外围系统接口调用…

图像像素操作与二值化

目录 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 2、图像像素逻辑操作 3、图像二值化 3.1 固定阈值二值化 3.2 自适应阈值二值化 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 Mat img imread("F:/testMap/bijiao.png");Mat white i…

Bootstrap - 【echart】 统计图表基本使用

一. 前言 Bootstrap是一个流行的前端框架,而ECharts是一个流行的可视化库。 Bootstrap可以用来设计网站和应用程序的用户界面,而ECharts可以用来创建交互式和可视化的图表。 chart.js中文文档:http://www.bootcss.com/p/chart.js/docs/ 二.…