unittest是Python单元测试框架,在web端UI自动化测试过程中,可以使用unitest框架。
目录
下面是以打开百度为例子,介绍下unitest:
unitest的小例子:
import unittest
from time import sleep
from selenium import webdriver
# 编写一个python类,继承 unittest模块中的TestCase类,这就是一个测试类
class MyUnit(unittest.TestCase):
# 开始函数,环境的搭建,最先被调用的函数
def setUp(self):
# 打开浏览器,获取浏览器驱动对象
self.driver = webdriver.Chrome()
# 设置等待时间,隐式等待
self.driver.implicitly_wait(30)
# 最大化窗口
self.driver.maximize_window()
# 主机路径
self.baseUrl = 'http://www.baidu.com'
# 用例函数,函数名称前必须是test
def test_baidu(self):
# 打开链接
self.driver.get(self.baseUrl)
# 结束函数,环境的还原,最后被调用的函数
def tearDown(self):
# 关闭浏览器
sleep(3) # 关闭前,代码睡眠3秒钟
self.driver.quit()
if __name__ == '__main__':
# 执行测试 类中以 test 开头的测试用例
unittest.main
在unitest中常用的还有断言和生成测试报告
unitest断言
常用的三个断言语句:
assertEqual(a, b) 断言a==b
assertNotEqual(a, b) 断言a!=b
assertTrue(x) 断言bool(x) is True
详细断言方法可见这篇博客:
unitest生成测试报告
1.下载HTMLTestRunner.py文件
2.编写生成报告的py文件
import unittest
from test.run.MyUnit import MyUnit
from test.run.HTMLTestRunnerX import HTMLTestRunner
if __name__ == '__main__':
# 1.获取测试套件
suite = unittest.TestSuite()
# 2.测试套件中添加测试用例
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(MyUnit))
# 3.获取运行器对象
f = open('../repots/baidu.html', mode='wb') # 报告存储位置
# stream存储位置,verbosity报告的详细程度,title报告名称
runner = HTMLTestRunner(stream=f, verbosity=3, title='百度title名称显示')
# 4.生成测试报告 (使用运行器对象去运行测试套件)
runner.run(suite)
生成报告的执行代码,需要单独装在文件里,否则会出现用例执行成功却没有生成报告的情况。