1、assertEqual(a, b) 判断ab是否相等
2、assertNotEqual(a, b) 判断ab不相等
3、assertIs(a, b) 判断a是b
4、assertIsNot(a, b) 判断a不是b
5、assertIsNone(a) 判断a是不是None
6、assertIsNotNone(a) 判断a不是None
7、assertIn(a,b) 判断a在b中,此时a与b可以相等
8、assertNotIn(a, b) 判断a不在b中
9、assertIsInstance(a, b) 判断a是否属于b的实例
10、assertNotIsInstance(a, b) 判断a不属于b的实例
11、assertGreater(a, b) 判断a > b
12、assertGreaterEqual(a, b) 判断a >= b
13、assertLess(a, b) 判断a < b
14、assertLessEqual(a, b) 判断a <= b
15、assertTrue(self, expr, msg=None) 判断是否为真:expr is True
16、assertFalse(self, expr, msg=None) 判断是否为假:expr is False
首先导入unittest模块 ,创建一个测试类,继承TestCase,定义setUp和tearDown方法;
setUp是进行测试前的初始化工作。
tearDown是测试后的清除工作。
创建测试用例,测试用例需要以test开头,每个测试用例,测试目的和测试内容应很明确。通过调用断言来判断程序执行结果和预期值是否相符。
调用unittest.main()启动测试。
**demo:**百度登录
import unittest
from selenium import webdriver
import time
class LoginTest(unittest.TestCase):
def setUp(self):
self.bro = webdriver.Chrome()
self.bro.get('https://www.baidu.com/')
def test_login(self):
user = ''
pwd = ''
self.bro.find_element_by_link_text('登录').click()
time.sleep(5)
self.bro.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
time.sleep(2)
self.bro.find_element_by_name('userName').send_keys(user)
time.sleep(2)
self.bro.find_element_by_name('password').send_keys(pwd)
time.sleep(1)
self.bro.find_element_by_id('TANGRAM__PSP_10__submit').click()
time.sleep(3)
get_head = self.bro.find_element_by_id('head').text
# 可以先输出结果看下
print(get_head)
print(type(get_head))
self.assertIn(user, get_head)
def tearDown(self):
print('测试结束')
time.sleep(10)
self.bro.quit()
if __name__ == '__main__':
# 1、unittest.main()
2、 suite = unittest.TestSuite()
suite.addTest(LoginTest('test_login'))
filename = 'D:\\新建文件夹\\result.html'
file = open(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=file,
title='百度登录测试',
description='测试情况')
runner.run(suite)
file.close()
用HTMLTestRunner.py改python3之后无法生成测试报告(上面的2),CMD命令运行可以。可用pycharm自带方式保存。