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


前言

接口自动化测试开展

工具选择:
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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值