一、(接口查询的条件分析)
1.一般来说,在所有平台中,凡是往数据库里增加接口,必然有相应的查询接口和修改操作的接口
2.接口的后台服务除了要把数据返回给我们之外,还要把真正对数据的修改操作写入数据库
3.测试人员不知道接口实现的逻辑,不知道开发人员是先更新数据库,还是先给我们返回数据
4.因此来说,有两种方式,一种是调用相应的查询接口,另一种是直接查询数据库
但是如果系统很复杂,做为测试人员查询数据库的时候很有可能面临一个现状:查询语句非常复杂;这种复杂情况根本写不出来(超出能力范围),寻找开发协助,或者开发写好给测试人员直接使用,成本比较高;所以不是所有的接口一定要查询数据库(若产品与金钱,授权相关,数字非常敏感),因此能用查询接口就用查询接口
二、期望结果的两种匹配方式:全值匹配、正则表达式匹配
增加一列来指明比对类型
三、响应数据存储的处理
1、返回结果直接写入excel表格中
2、存储在文件中
如果返回的接口很长,超出excel单元格的范围,这种情况下可以将返回结果写入到文件中,将文件地址直接写入excel单元格中。
注意:需要专门增加一列表来表达存储类型(如果类型为2,表示要从文件当中读取)
四、app测试的token
token是什么呢?token就类似于session 中的cookies。区别是token主要应用于app,session主要运用于web平台。是用户的身份令牌,app登录时向服务器申请身份认证,服务器身份认证成功后,返回一张“通行证”--token值。用户在服务器上有很多资源,比如用户信息、投资记录、余额等等,如果 没有权限控制和身份认证,任何人就可以拿走你的钱,很不安全。为了保证用户数据安全,想服务器进行任何操作的时候(比如获取个人信息,充值、投资),必须每次告诉服务器你是谁,必须每次带上token去验证。token一般在登录时生成,有有效期限。这就类似一种关联,token是登录接口的一堆返回数据,后续的其他接口都要在请求中带上这个token (接口之间是依赖关系,接口A的返回值当中一部分作为接口B的入参)
五. 两种方案:
1. 从数据库或缓存中查 2. 从接口的返回值中提取(jmeter或postman都有用到)
六、实例
投资的请求数据是:"memberid": "${userid}",而 "userid"是充值接口返回数据的一部分,我们需要做两件事情:
1、从充值接口返回值中提取 2、再把提取的值赋值给投资接口的请求数据。考虑到提取和赋值都运行测试用例的过程中进行的,也就是动态的,而且还不确定有多少接口要用到这个值,因此提取出来的值需要所有的测试用例都要识别到(接口A的返回值,接口B,C,D要用到),所以提取的值需要变成一个公共变量(全局变量)
七、步骤
1.告诉代码,哪一个测试用例--需要提取返回结果当中的值。在excel中增加一列“提取表达式”,在这一列中,如果有值(提取的正则表达式),表示要提取。先提取赋值在断言,没有就直接断言。
2、再提取,正则表达式提取
3、告诉代码,哪个测试用例要用到提取的值,哪个位置用?占位符表示被替换的数据
4、将提取的值变成全局变量,变成键值对,声明一个py模块文件中的全局变量,变量 global_var,一个字典类型,在得到接口响应结果后,判断是否需要提取,如果需要提取,则将提取的值存放在 global_var中,供后续的其他接口使用
5、在接口请求之前,先判断global_var是否有值,且请求数据不为空的情况下,进行替换操作
下面分享我整理的这份2023年可能是最全的自动化测试工程师发展方向知识架构体系图。
码尚教育软件测试全职业生涯进阶从零到测试开发VIP课程| ProcessOn免费在线作图,在线流程图,在线思维导图
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励,也方便你下次能够快速查找,感谢。
如果你想获取该文章配套的视频视频教程以及练手的接口。请狠狠点击文章末尾推广小卡片
并把所需的资料的文章链接发给我即可领取
如果你想获取简历模板+面试技术宝典+求职视频+上千份测试真题,
请狠狠点击文章末尾推广小卡片
并把所需的资料的文章链接发给我即可领取