一、pytest -m :执行特定的测试用例
1、对测试用例使用
1)配置文件中先注册好标签。注意:ini文件中不要有中文符号,逗号,冒号,引号等。
2)给测试用例打上标签,格式如下图所示
3)执行命令:pytest -m 标签名
2、对测试类使用。
实际中测试用例有很多,如果每个用例都打上标签,不利于后期去除或变更标签。故可以给一个测试用例类打上标签,类中包含相应的测试用例。
1)用例代码中定义测试类。并给其打上特定的标签名。
2)配置文件中定义该标签。
执行查看结果如下。与testcases下的test_two 文件两个用例的判断情况一致。
二、pytest -k 执行用例包含“关键字”的用例
代码中不需要做其他操作,关注自己想要的用例包含的关键字,并在终端执行中带入该关键字。语法如下图。
最终识别包含mobile的文件中的两个用例并执行。
三、pytest -q :简化控制台的输出。以下均以test_mobile为例查看执行结果。
test_mobile的代码为:
import requests
def test_mobile_get():
print("测试手机号归属地get请求")
r = requests.get('https://api.binstd.com/shouji/query', params={
"shouji": "13456755448",
"appkey": "f59e0831625536e7"
})
print(r.json())
print(r.status_code)
assert r.status_code == 200
result = r.json()
assert result['status'] == 0
assert result['msg'] == 'ok'
assert result['result']['shouji'] == '13456755448'
assert result['result']['province'] == '浙江'
assert result['result']['company'] == '中国移动'
assert result['result']['cardtype'] is None
assert result['result']['areacode'] == '0571'
def test_mobile_post():
print("测试手机号归属地get请求")
r = requests.post(url='https://api.binstd.com/shouji/query', params={
"shouji": "13456755448",
"appkey": "f59e0831625536e7"
})
print(r.json())
print(r.status_code)
assert r.status_code == 200
result = r.json()
assert result['status'] == 0
assert result['msg'] == 'ok'
assert result['result']['shouji'] == '13456755448'
assert result['result']['province'] == '浙江'
assert result['result']['company'] == '中国移动'
assert result['result']['cardtype'] is None
assert result['result']['areacode'] == '0571'
结果只显示有几条用例通过或不通过。
四、pytest -v :可以输出用例更加详细的执行信息
结果如下:
输出运行环境,配置文件、组件等。
五、pytest -v:输出我们用例中的调式信息
它能把程序中print的信息打印出来,其他与-q 的执行结果相差不大
六、ini文件配置指定的运行参数
打开ini文件,定义指定运行参数,代码如下,-q既表示极简方式的输出方式。
终端执行时,便只需输入 pytest 目录/文件名,自动执行配置文件中定义的运行方式。
同理,设置成addops :-v或-s即可按照相应方式输出结果。