栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

python接口自动化遇到问题总结-持续更新

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

python接口自动化遇到问题总结-持续更新

前提:管理用例用的是excel
1.读取用例时入参带“n”,原因是有空格
解决:在notePad++里n和r都替换下,或者在代码里 case_str=case_str.replace("n", “”).replace("r", “”)

2.
2.一个sheet管理的案例需要两个不同的token,通用获取token是在conftest.py里,但是B案例需要获取上一条A案例的token
解决:就需要把A的token动态setattr存入类中,然后判断如果有token,则请求时就不用通用token,而是用A的token
if hasattr(Data,“access_token”):
resp = hrq.send_requests(case[“method”], case[“url”], case[“request_data”], token=getattr(Data, “access_token”))
注意:可先用通用token,再用案例中的token,但是最后不能再换成通用token跑案例
3.案例中接口入参需要用到config.ymal
解决:写一个工具类,读取yaml和替换excel入参值为yaml里的数据
入参需要:$ 例如: {“phone”:"$phone",“x-fr”:“lcs_web”}
注意:yaml里参数命名要遵循一定的规则
4. @pytest.mark.parametrize与python的装饰器同时使用时报错
def api_call(func):
“”"
接口调用记录
:param func: 装饰的函数
:return:
“”"
def inner(*args, **kwargs):
logger.info(f"开始调用接口:{func.name}")
sleep(1)
res = func(*args, **kwargs)
logger.info(f"结束调用接口:{func.name}")
return res
return inner

这样会报“ TypeError: test_contentManagement() missing 2 required positional arguments: ‘case’ and ‘login’”
解决:在装饰器方法上 @six.wraps(func)或@functools.wraps(func)
值得注意的是@functools.wraps(func),这是python提供的装饰器。它能把原函数的元信息拷贝到装饰器里面的 func 函数中。函数的元信息包括docstring、name、参数列表等等。可以尝试去除@functools.wraps(func),你会发现test.__name__的输出变成了wrapper

链接:https://blog.csdn.net/Warmheart_qian/article/details/118599943

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

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

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