我们在做自动化测试的时候,有时候想要很清楚的看到每条用例执行的详细信息,我们可以通过unittest中verbosity参数进行设置
verbosity参数设置
verbosity表示在只执行用例的过程中可以把用例的执行情况根据配置的参数不同表示不同的详细程度,我们先看下源码中如何进行解释的。
通过观察可以看到我们verbosity默认为1,可以设置为0和2。
- 0 (静默模式): 你只能获得总的测试用例数和总的结果。
- 1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “E”
- 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息 并且 你在命令行里加入不同的参数可以起到一样的效果
看这么多,不如我们实践下。
小试牛刀
我们通过unittest和我们前面写的查询音乐的结果一起看看verbosity每个情况
verbosity=0
0 (静默模式): 你只能获得总的测试用例数和总的结果。
# coding:utf-8
import unittest
import requests class Music(unittest.TestCase): def select(self,name):
url = 'https://api.apiopen.top/searchMusic'
data = {
"name":name
}
r = requests.post(url,data=data)
b = r.json()['result'][0]['title']
return b # 错误的用例
def test01(self):
b = '断桥残雪的故事'
a = self.select(b)
self.assertEqual(b,a)
print('这个是用例一') # 错误的用例
def test02(self):
a = '说好不哭的剧情'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例二') # 正确的用例
def test03(self):
a = '芒种'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例三') if __name__ == '__main__':
unittest.main(verbosity=0)
通过执行后我们可以看到当vervbosity=0的时候,只显示了执行错误了多少条用例
vervbosity=1
1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “E”
# coding:utf-8
import unittest
import requests class Music(unittest.TestCase): def select(self,name):
url = 'https://api.apiopen.top/searchMusic'
data = {
"name":name
}
r = requests.post(url,data=data)
b = r.json()['result'][0]['title']
return b # 错误的用例
def test01(self):
b = '断桥残雪的故事'
a = self.select(b)
self.assertEqual(b,a)
print('这个是用例一') # 错误的用例
def test02(self):
a = '说好不哭的剧情'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例二') # 正确的用例
def test03(self):
a = '芒种'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例三') if __name__ == '__main__':
unittest.main(verbosity=1)
通过执行后我们可以看到当vervbosity=1的时候,成功的用例用.表示,失败的用E表示
vervbosity=2
2 (详细模式):测试结果会显示每个测试用例的所有相关的信息 并且 你在命令行里加入不同的参数可以起到一样的效果
# coding:utf-8
import unittest
import requests class Music(unittest.TestCase): def select(self,name):
url = 'https://api.apiopen.top/searchMusic'
data = {
"name":name
}
r = requests.post(url,data=data)
b = r.json()['result'][0]['title']
return b # 错误的用例
def test01(self):
b = '断桥残雪的故事'
a = self.select(b)
self.assertEqual(b,a)
print('这个是用例一') # 错误的用例
def test02(self):
a = '说好不哭的剧情'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例二') # 正确的用例
def test03(self):
a = '芒种'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例三') if __name__ == '__main__':
unittest.main(verbosity=2)
执行后发现verbosity=2,执行完用例把用例执行详情详细的打印出来了
这一篇重复代码较多,只是为了方便理解verbosity设置各个参数表示的内容详细的展示给大家,大家也可以动手自己试一试