Python null

风子 · 2023年11月30日 · 最后由 仙道彰 回复于 2024年08月27日 · 11151 次阅读

null

共收到 15 条回复 时间 点赞

设想下,如果基于 mitmproxy 录制接口,然后自动生成 yaml 文件,同时 yaml 里可支持参数化。如果固定用户,只需录制接口生成 yaml 文件即可。然后再加入返回结果对比验证,可以验证字段,也可以验证 schema。。。。。。。😁 😁 😁


这里可以优化成维护对应的 post、get、put、delete 的四种类型 API。至于每个接口加密,可以写个通用的加密方法,让 api 调用

1.请求体可以用解构
比如你要传入 args1 和 args2,2 个参数,用

data = {"args1":xxxx,"args2":xxxx} 这样也容易维护
def method_ex(args1,args2):
    ...
# 改成下面的
def method_ex(data):
    ...
# 这样会自动进行匹配,字典也可以维护成json,容易维护。
method_ex(**data)
# 等于把要传递的数据包含加密的,在data管理时都做了。

2.基本异常、基本响应抽象出来是框架做得事情,看抽象维度是以框架多加一层在到场景层都可以。

3.现在的这种每个接口都会根据参数加密追加到请求中和 header。可以单独写一个方法,在请求时先使用这个。
比如下面这个简单例子,如果是加密的,可以看看 1,加密一般是对请求体内容的某个字段加密,如果是加密放到包头里面,比如 token

headers = {"Authorization": f"Bearer {JWT}","token":"部分参数加密后的数据"} 
def get_header(module:str,data:dict)->dict:
    """
    设置包头 放入到请求库的headers字段
    在配置层维护一个 {module:data}的map结构
    :param module:模块名称 不同模块加密方式不一样
    :param data:解构的结果 传入
    :return:
    """
    ...

http 镞包头也是验证合法来源的,所以放到配置层里面。

风子 #12 · 2023年12月01日 Author
懒人 回复

get 到了一点,感谢

陈子昂 回复

谢谢,昨天晚上在看书,对于响应的断言又有了一些新的理解,我今天再补充上去。

风子 #10 · 2023年12月01日 Author
懒人 回复

又认真比对了下,你这种方法跟我看到的第一个文章的类似(https://testerhome.com/topics/23441

他的 path 和请求方式也放到 yaml 里维护,看来这种方式是最简洁了

那对比第二篇文章中提道的 github 项目(https://github.com/wintests/pytestDemo

是把 api 和 operation 层都砍掉了。🤔️

风子 回复

https://github.com/wintests/pytestDemo 应该是跟这个比较像,因为我最开始按照这个去调整的,后面觉得调用链太长把 api 给砍掉了,operation 我觉得每个接口一个方法很重复就直接封装 post、get、put、delete 四个方法适应所有 method 方式的接口。不过在 testcase 类是一个接口一个方法,yaml 不用指定 method,因为在 testcase 的方法里是知道该接口的请求方式,直接调用 operation 封装的方法就好,至于 path 放 yaml 或者 testcase 都没问题,放 yaml 是为了完整性,因为框架写好了,最多的工作还是在写 ymal。

懒人 回复

好的好的,感谢,我觉得你这种方式挺简洁的,我也要看看怎么调整比较合适。调整好了,再把接口写进来。

dustin 回复

厉害哦 谢谢
因为没有接触过,一直没回复。
现在才搜索相关文章看,这种方法真高效,我琢磨琢磨。

懒人 回复

请教下,这种 yaml 管理测试数据的方式,如果接口涉及关联呢,如:
1.新增公告 - 保存

2.公告提交 - 启动审批流

3.公告审批 - 审批通过
4.检查公告的发布状态为发布成功
我要测一个发布公告的场景,这里面涉及到 4 个步骤,多个接口协作,中间我还需要拿到新建的公告 id 去数据库关联查审核任务的 id,然后才能去审批接口使用审批通过。像这种场景请教下,yaml 文件管理测试数据的,是什么个思路?我目前的方式比较笨,太过依赖 pytest 的 fixture 固件了...

风子 #11 · 2023年12月13日 Author
dustin 回复

哥,我感谢你的一句评论,让我茅塞顿开。我在积极录制接口了~

接口自动化的尽头是接口自动化平台,免费的 MeterSphere 接口测试平台你值得拥有,docker 部署简单方便,团队都能用维护成本币代码低多了

仙道彰 回复

老哥找到解决办法了吗,我和你一样也卡这了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册