赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
在这个平台中,RobotFramework 主要用于后台执行 Robot 关键字脚本,而关键字脚本,是平台通过读取 YAML 文件生成,该文件是通过笛卡尔乘积产生的用例,工作原理如图所示:
(点击放大图像)
图 -3- 工作原理
那话说回来,YAML 干什么呢?为什么不是 XML 呢?
听起来 YAML 试图用一种比 XML 更敏捷的方式,来完成 XML 所完成的任务。下面通过一段实际例子说明配置生成的 YAML 代码段:
主接口配置界面:
(点击放大图像)
图-4- 接口配置页面
设置API 参数:
(点击放大图像)
图 -5- 设置 API 参数
配置文件 byChannelsDaily.yaml(列举一个参数示例):
复制代码
- byChannelsDaily: #接口名称 | |
method: get #与服务器交互的方法 | |
format: json #API 数据格式 | |
url: /reportdata/flux/byChannelsDaily #API 的 URL,与奇台配置文件里面的 host 变量组成整个 URL 的前半部分。 | |
url_path: | |
url_params: #URL 参数部分,固定写法。 | |
username: #API 的参数名。 | |
required: true #该参数是否必须(true/false)。 | |
value: chinacache #该参数的值。如此值是从另一个接口获取的,可在 from_api 设置,此处可不填。如果值是 Boolean,必须加双引号。 | |
type: string #该参数值的类型。 | |
len: 10 #该参数值的长度。 | |
max: -100 #该参数值的最大值。-100 相当于忽略此参数 | |
min: -100 #该参数值的最小值。-100 相当于忽略此参数 | |
from_api: #如参数的值是从另一个接口、global.yaml 中获取的,请设置 from_api,如 global | |
jsonpath: #可通过 jsonpath 来指定取值范围,如 $.version[2:4] | |
range: | |
response: #期望结果 | |
verification: | |
success: [] #success 是一个 list, 它的元素也是 list,success[0] = [ RF 关键字 ,验证字段,正则匹配] | |
failure: [] | |
error_msg: [] #错误信息集合 |
测试报告:
(点击放大图像)
图-6-rf 测试报告
按照这个思路做下来,得到什么收益呢?
(点击放大图像)
说到这里,其实,真没有带来多少收益,思路对了,但是方向有偏差了,主要体现在:
图 -7- 庞大的测试用例文件
败了,就是败了,没什么好找借口,关键问题是:
回到起点,测试要解决什么问题,为什么要做 API 自动化测试平台?做这个平台,不是为了满足老板的提倡全民自动化的口号,也不是为了浮夸的 KPI,更不是宣传自动化可以解决一切问题,发现所有 bug。叔本华说过一句话:由于频繁地重复,许多起初在我们看来重要的事情逐渐变得毫无价值。如果 API 测试仅仅依靠纯手工的执行,很快将会面临瓶颈,因为每一个功能几乎都不能是第一次提交测试后就测试通过的,所以就需要反复 bug 修复、验证,以及回归的过程。另外,很多的 API 测试工作手工做起来非常的繁琐,甚至不便,比如针对接口协议的验证、针对返回数据格式的验证,这些都依赖于测试自动化的开展。因此,真正的目的是解放测试人员重复的手工生产力,加速回归测试效率,同时让研发人员在开发过程及早参与测试(自测、冒烟测试),驱动编码质量的提升。
回顾以往,重新梳理头绪,更加清晰的展现:
(点击放大图像)
图 -8-HTTP API 自动化测试图解
最大的收益,重复步骤自动化后,不管是研发人员自测,还是执行功能回归测试,成本可以很快收回(前提是你这个项目周期长,构建频繁;如果仅仅是跑几个月的项目,真没那个必要凑热闹去自动化,当然有平台的另当别论),测试的关注点会落实到更加关键的业务环节去;
总体规划如下:
(点击放大图像)
图 -9-HTTP 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- 测试用例验证展示页
通用响应配置
(点击放大图像)
图 -18- 通用响应配置列表页
√ 设计思路
在合理的 API 设计中,存在通用的错误响应码,[用户名错误,返回期望响应内容],如果所有 API 的响应结果中都需要重复写是相当繁琐的,作为共同配置调用即可。
(点击放大图像)
√ 应用场景
查询接口遇到用户名密码为空,可以自定义写返回内容,以及选择 [通用响应配置] 下的相关错误类型,例如:用户名密码为空 (计费单元),自动填充期望的返回值:
复制代码
fail | |
invalid userName or password | |
(点击放大图像)
图-19- 期望返回值校验页
API 依赖库
√ 设计思路 & 应用场景
API-A 的参数 r_id 依赖与 API-B 返回结果的某个参数(多个参数同样道理),这里登记 API-B,并且提取返回参数。除了特有的变量提取器,基本信息与请求,与后面提到的 API 接口一致的
填写方式 :
(点击放大图像)
图 -20- 变量提取器展示页
该接口返回数据如下;
复制代码
{ | |
“r_id”: “567bbc3f2b8a683f7e2e9436” | |
} |
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
9.jpeg)
图 -20- 变量提取器展示页
该接口返回数据如下;
复制代码
{ | |
“r_id”: “567bbc3f2b8a683f7e2e9436” | |
} |
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-iHlG1iKe-1713239973638)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。