先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
图 -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:
- 支持 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 参数展示页 |
- 支持返回结果的 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 (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
sdnimg.cn/img_convert/6c5bca0aed6477618afc63765aae587a.jpeg)
图 -27- 测试报告列表页
(点击放大图像)=
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-XLjuty52-1713596438776)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!