自动化应该如何实现
2021/4/26 18:55:29
本文主要是介绍自动化应该如何实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
接口业务用例的思考
有个问题思考很久,业务流程的自动化应该如何实现?是不是应该做十几个接口的业务测试?
咨询好些大佬,
A:看成果,有效果有时间都可以做。
B:业务流程的接口测试交给系统测试来做是不是会更好?
后者的话似乎有点让我自省~,我又反问他,那你这样说,接口的依赖你如何处理?
B:Mock解除依赖!
至此后,很久才明白。调用三方接口,Mock是个不错的选择
而所谓的业务用例,投入与回报成正比
一条用例的自动化应该做什么!
看起来简单的问题,实际上做起来没那么容易
举个例子:
账号、密码注册,测试注册成功
1、检查数据库是否存在该账号,有sql删除,没有跳过
2、传入参数调用注册接口,断言响应
3、sql删除该账号
如何优雅
花了很多时间探索后才发现pageobject
元素层 + page层+ case层的相互调用似乎是已是标准
如何使用python 优雅的实现考验那个曾经为之努力的ceshiren -> 代码始于颜值终于才华
步骤:
①一起从case开始吧!
这是一条获取会员列表接口测试的正向用例,参数分别是:页码、页数、排序方式、是否正序 调用如此简单,1、调用会员page下的会员列表接口,2、传入所需参数 3、获取响应 4、响应断言 关键就在于调用的api如何实现
@pytest.mark.parametrize("case", ViplistData.case) @assert_logger def test_viplist(self, case): """B端会员列表""" r = self.vip.viplist(pageindex=case['index'], pagesize=case['size'], orderfield="createtime", ordertype=0) assert r.success is Truez
②page层
什么是page?页面,页面下的功能点、方法,都归属这个页面
这样一来其实就对接口分了一下类,就比如会员下,有获取列表、新增会员、删除会员等
其实实现,无非就是传入数据给发送请求的方法而已
用了1个装饰器来重复造轮子,没错这很pythonic !
class Vip(WeShop_B): def __init__(self): self.apipath = YAML_DIR + r"\vip.yaml" self.apiyaml = self.api_yaml(file=self.apipath) @api def viplist(self, pageindex, pagesize, orderfield, ordertype) -> res: """ 获取pc会员列表 :param pageindex: 当前页数 1 :param pagesize: 一页数量 10 :param orderfield: 排序字段 createtime :param ordertype: 排序(0-正序,1-倒序) :return: """ pass
def api(func): @functools.wraps(func) def magic(self, *args, **kwargs): func(self, *args, **kwargs) base_api: Base = self method = func.__name__ base_api.params.update({name: vaule for name, vaule in zip(func.__code__.co_varnames[1:0], args) if args is not None}) base_api.params.update(kwargs) req = base_api.api_yaml(file=base_api.apipath)[method] res = base_api.api_send(req)
写在最后:
元素层 1个yaml\json就要写 1个page。好像还是不够pythonic
正在朝着扫描yaml进行测试的路前进~
这篇关于自动化应该如何实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南