httprunner踩坑记03-->debugtalk.py中的方法传参
前言
别把生活想得太重,别把自己看得太轻。
一、debugtalk.py介绍
辅助函数,可在debugtalk.py文件中自定义函数,完成一些yml测试脚本完成不了的功能。
二、debugtalk.py 应用举例
# debugtalk.py 中存在方法
# 产生1个自定义范围的随机数
def get_randomint(n,m):
return random.randint(n,m)
# 默认产生3个自定义范围的随机数(参数化时使用)
def get_randomints(n,m,count=3):
random_list = []
for i in range(0,count):
random_list.append( random.randint(n,m) )
return random_list
在测试用例文件中调用上述函数的格式如下:
- config:
name: "验证百度搜索是否正确"
base_url: "https://www.baidu.com"
variables:
- search_word: ${get_randomint(1,20)}
- test:
name: "百度搜索请求"
request:
url: "/s"
method: GET
headers:
User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
Accept-Encoding: "gzip, deflate, br"
Accept-Language: "zh-CN,zh;q=0.9"
params:
wd: $search_word
validate:
- eq: ["status_code",200]
如上测试用例yml文件内容,在 config 的 variables 下 调用了debugtalk.py文件中的get_randomint函数。并把函数返回值传递给了定义的 search_word 变量。
三、debugtalk.py 传参时的小问题
# debugtalk.py文件内容
def pri(content):
print(content)
通过上述代码可以发现 debugtalk.py 文件中有一个输出到控制台函数,需要传入一个 content 参数,平时传参用起来没有问题。但如下面事例代码时:
- config:
name: 验证能否打开主网页
base_url: http://www.hnxmxit.com
# 测试步骤
- test:
name: open hnxmxit mainpage api
setup_hooks:
- ${pri(step_01:打开新梦想主页)}
request:
url: /
method: GET
validate:
- eq: ["status_code",200]
如上述代码, setup_hooks中调用了pri方法,传递的参数中包含 英文 : 号,会导致调用该pri方法失效。类似的字符串有 [] 、: 。解决方法是去掉 : 等
四、小结
欢迎广大读者们提出对该博客有遗虑的地方,或者有办法解决上述问题的朋友都可以加V、QQ私聊。
超全面的测试IT技术课程,0元立即加入学习!有需要的朋友戳:
腾讯课堂测试技术学习地址
作者:蓝寅
出处:https://www.cnblogs.com/dream66/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
腾讯课堂测试技术学习地址
作者:蓝寅
出处:https://www.cnblogs.com/dream66/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。