腾讯外包凭借HTTP API 自动化测试从手工到平台,涨薪13k_由于频繁的重复,许多起初在我们看来重要的事情逐渐变得毫无价值的感悟

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

图 -9-HTTP API 重构规划

  • 技术选型 由于原来的测试平台使用 Python 编写,为了保持风格一致,从界面录入到文件生成处理依然采用 Python、Django,去掉了全对偶组合算法,改为根据测试人员思维去产生用例;去掉了后台 RobotFramework 框架,采用 Python 的 HTTP 类库封装请求。
  • HTTP API 项目管理 Web 前台 使用 Python+Django+MySQL 进行开发,分为项目首页、项目配置、API 配置、全局配置四大部分

(点击放大图像)

图 -10- 管理 Web

项目首页

介绍:列出 API 规范、API 测试用例、定时任务数量,以及某段时间内的测试结果趋势图形。

(点击放大图像)

图 -11- 项目首页

  • 项目配置 重点介绍:全局变量、常用方法、验证器。

全局变量

设计思路:在 API 测试过程中,可以切换生产、测试环境进行对比校验,如果写两套测试用例是冗余,全局变量功能,是一种在执行测试用例时动态改变用例属性的方法。

作用范围:当前项目内

使用方法:{变量名}

能在以下测试用例属性中使用:URL、请求头、请求参数

(点击放大图像)

图 -12- 全局变量配置页

在 API 用例库的 URL 可以直接填写:{host}/reportdata/monitor/getChannelIDsByUserName;当运行测试用例的时候,可以选择不同的参数套件,后台代码执行会直接替换,这样子可以分别快速验证生产环境和测试环境的 API 接口执行结果的差异。

(点击放大图像)

图 -13- 用例执行页

常用方法

(点击放大图像)

图 -14- 常用方法列表页

√ 设计思路:常用方法是一个 Python 函数,对入参进行处理并且返回结果,例如:

gen_md5 作用是生成 MD5,对应代码直接填写:

复制代码

import hashlib
def gen_md5(raw_str):
m = hashlib.md5()
m.update(raw_str)
md5_str = m.hexdigest()
return md5_str

√ 应用场景:

在 API 请求中,有些参数例如 pass 需要加密处理,可以通过引入 [常用方法] 来解决。

在参数 pass 的值中直接填写:

复制代码

{{get_apipwd(“{123456}”,“ChinaCache”)}}

(点击放大图像)

图 -15- 接口配置页

验证器

(点击放大图像)

图-16- 验证器配置页

√ 设计思路

验证器是一个Python 函数,如果函数返回True,则测试通过;返回False,则测试失败。平台默认提供一个默认验证器。

默认验证器是验证期望结果与实际结果(response body)是否完全一致。如果结果不一致则判断为失败,默认验证器只适用于静态的响应结果对比。

自义定验证器,如果默认验证器不能满足某些特殊的测试需求,用户可以在“项目配置- 验证器”中添加自定义的验证器。

√ 应用场景:在API 测试的返回结果中,可以添加自定义验证器对数据进行校验,判断测试是否通过。

(点击放大图像)

图 -17- 测试用例验证展示页

  • API 配置 重点介绍:通用响应配置、API 依赖库、API 用例库、定时任务、测试报告

通用响应配置

(点击放大图像)

图 -18- 通用响应配置列表页

√ 设计思路

在合理的 API 设计中,存在通用的错误响应码,[用户名错误,返回期望响应内容],如果所有 API 的响应结果中都需要重复写是相当繁琐的,作为共同配置调用即可。

(点击放大图像)

√ 应用场景

查询接口遇到用户名密码为空,可以自定义写返回内容,以及选择 [通用响应配置] 下的相关错误类型,例如:用户名密码为空 (计费单元),自动填充期望的返回值:

复制代码

fail
invalid userName or password

(点击放大图像)

图-19- 期望返回值校验页

API 依赖库

√ 设计思路 & 应用场景

API-A 的参数 r_id 依赖与 API-B 返回结果的某个参数(多个参数同样道理),这里登记 API-B,并且提取返回参数。除了特有的变量提取器,基本信息与请求,与后面提到的 API 接口一致的

填写方式 :

(点击放大图像)

图 -20- 变量提取器展示页

该接口返回数据如下;

复制代码

{
“r_id”: “567bbc3f2b8a683f7e2e9436”
}

通过 [变量提取器],可以获取 r_id 的值,以供依赖 API-A 作为参数使用。

(点击放大图像)

图-21- 用例中参数包含r_id 变量展示页

其中请求参数的获取如下:

(点击放大图像)

图-22- 请求参数变量提取设置

测试结果:

1- 显示依赖接口;2- 显示为需要测试的接口,依赖接口返回的 r_id 会传入作为测试接口的参数;

(点击放大图像)

图 -23- 测试结果中展示运行时变量提取结果

  • API 用例库 (点击放大图像)

图 -24- 用例库设计脑图

√ 设计思路

通过自助配置:请求头、请求参数,响应头、响应结果校验,来聚合测试人员日常思考产生的测试用例。

√ 应用场景

支持 HTTP1.1 协议的 7 种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE 和 TARCE。最常用的方法是 GET 和 POST:

  1. 支持 query(问号后)带参数、path 的 GET|POST 请求 Query:http://192.168.1.11/internal/refresh?username=ChinaCache&password=123456

Path:http://192.168.1.11/internal/refresh/username/password
2. POST 请求支持 application/json、text/xml 示例如下:

复制代码

请求头设置:Content-Type:application/json
请求体设置:保存为 JSON 格式
{
“username”: “ChinaCache”,
“password”: “123456”,
“task”: {
“dirs”: [
“”
],
“callback”: {
“url”: “”,
“email”: []
},
“urls”: [
“http://www.chinacache.com/news/test.html”
]
}
}

复制代码

结果如下:
(点击放大图像)
图 -25-body 参数展示页
  1. 支持返回结果的 schema 验证 在返回大量数据的场景下,把数据格式的正确性交给程序去判断,通过之后进行人工干预的数据对比,假如返回几百 K 的数据,你不知道格式是否正确,就开始去做数据对比,这个方向是不对的。

复制代码

{
“r_id”: “567cfce22b8a683f802e944b”
}
Schema 验证如下:
{
“$schema”: “http://json-schema.org/draft-04/schema#”,
“required”: [
“r_id”
],
“type”: “object”,
“id”: “http://jsonschema.net”,
“properties”: {
“r_id”: {
“type”: “string”,
“id”: “http://jsonschema.net/r_id”
}
}
}
  • 定时任务 √ 设计思路 & 应用场景

定时任务是在计划好的时间点自动执行指定的测试用例。一个项目支持多个定时任务,如果同一时间点有多个测试任务,将依次执行。定时任务有两种类型:定时、循环(间隔:秒,

分钟,小时,天,周)。通过定时任务,可以做到晚上运行,早上查看结果报告分析。

(点击放大图像)

图 -26- 添加定时任务

  • 测试报告 & 邮件通知 √ 设计思路 & 应用场景

每次执行测试用例(包括手动执行和定时任务)之后,都会生成一份测试报告。

报告会详细列出每个接口的基本信息(名称,请求方法,验证器等),请求信息(URL 和 body 参数),响应信息包括 headers, body, schema, content type, status code 5 部分的测试结果,每一部分都有实际结果、期望结果(失败时显示)以及 DIFF 对比(失败时显示),当在

执行测试时出现错误,也会把错误信息显示出来 。

(点击放大图像)

图 -27- 测试报告列表页

(点击放大图像)=

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
sdnimg.cn/img_convert/6c5bca0aed6477618afc63765aae587a.jpeg)

图 -27- 测试报告列表页

(点击放大图像)=

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-XLjuty52-1713596438776)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值