栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytest接口自动化实战记录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytest接口自动化实战记录

一,出接口自动化测试方案。收集整理接口文档。
二,搭建自动化测试demo,优化完善架构目录。
三,框架接入流水线与编写case同时进行。
四,持续维护。

项目目录结构。 实操过程中遇到的问题及解决方案。

1,登录问题
正常登录流程,先get请求login的url获取,csrf_token,及其他的所需要的信息,用于前端加密,前端加密算法,是用csrf_token, 盐,输入的密码等算出来一个值,去post请求登录接口。
解决方案:
使用python的第三方包《pyduktape》,来直接操作js文件,将所需要的参数,传递给js进行加密后将结果返回来,然后模拟登录。

2,设置全局登录cookies

需求:设置一个已登录client,能够全局使用,每条用例可直接去请求。
解决方案:
使用conftest.py 和 @pytest.fixture(scope="session")

3,关于参数化的思考
解决方案:
1,单接口参数:@pytest.mark.parametrize
2,接口之间参数传递:@pytest.fixture(scope="function")
3,接口之间的依赖:@pytest.mark.dependency() 处理的场景是,b接口依赖于a接口的成功,此方法实现的是,a接口失败,b接口自动跳过,不去执行。
4,可以操作数据库,来获取b接口依赖a接口的值。
5,如果登录的cookies是全局的,可以将a获取到的值存到cookies对象中去,用@pytest.mark.run(order=1)来控制顺序,或者使用@pytest.mark.dependency()失败后自动跳过,b接口可以从cookies的对象中取出a的返回值,进行使用后,将属性删除。

发现的问题
1,dependency与parametrize不能一起用 否则dependency依赖的接口会跳过

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号