一,出接口自动化测试方案。收集整理接口文档。
二,搭建自动化测试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依赖的接口会跳过