小编使用的是unittest的一个扩展HTMLTestRunner
使用之前,我们需要下载HTMLTestRunner.py文件

点击HTMLTestRunner后进入的是一个写满代码的网页,小编推荐操作:右键 --> 另存为,文件名称千万不要改
python3使用上述HTMLTestRunner可能会报错,可以替换如下文件
HTMLTestRunner
使用
接下来,小编将以登录网易邮箱为例,生成一份最基础的测试报告。小伙伴们copy走代码验证时一定记得修改账号密码哦。
目录结构如下:

将HTMLTestRunner.py文件存放到package包下,将test_login.py存放到testcase目录下,用于编写测试用例,建立testreport包,用于存放测试报告,在email目录下建立run_test.py,用于执行测试
HTMLTestRunner的使用方法在代码注释中介绍和解释【test_login.py】
-
- from selenium import webdriver
- import unittest,time
-
- class Login(unittest.TestCase):
- def setUp(self):
- #打开百度,搜索“163网易邮箱”,登录
- driver=webdriver.Firefox()
- driver.implicitly_wait(5)
- self.driver=driver
- driver.get("https://www.baidu.com/")
-
- driver.find_element_by_id("kw").send_keys("163邮箱登录")
- driver.find_element_by_id("su").click()
-
- name = driver.find_element_by_id("op_email3_username")
- password = driver.find_element_by_class_name("op_email3_password")
- login = driver.find_element_by_css_selector(".c-btn")
-
- #如下操作可以使setUp中的变量被其他模块调用
- self.name=name
- self.password=password
- self.login=login
-
- def tearDown(self):
- self.driver.quit()
-
- def switch_window(self):
- #切换窗口
- for handle in self.driver.window_handles:
- self.driver.switch_to.window(handle)
- #j增加等待时间,可以提高测试用例执行的健壮性
- time.sleep(2)
- time.sleep(3)
-
- #成功登录
- def test_right_login(self):
- #账号密码自行填写
- self.name.send_keys("xxx")
- self.password.send_keys("xxx")
- self.login.click()
-
- self.switch_window()
- #t通过新窗口的title验证用例是否通过
- self.assertEqual(self.driver.title,"网易邮箱6.0版","登录失败")
-
- #密码为空登录
- def test_null_psw_login(self):
- self.name.send_keys("xxx")
- time.sleep(3)
- self.login.click()
- self.switch_window()
- # t通过新窗口的title验证用例是否通过
- self.assertEqual(self.driver.title,"网易帐号中心 > 用户验证","未跳转至用户验证界面")
【run_test.py】
-
- #导入HTMLTestRunner的包
- from package import HTMLTestRunner
- #导入test_login的包,执行测试用例时需使用
- from testcase.test_login import *
-
- #定义要执行的测试用例的路径
- test_dir = './testcase'
- #定义要执行的测试用例的路径和名称格式
- #test_*.py的意思是,./testcase路径下文件名称格式为test_*.py的文件,*为任意匹配,路径下有多少的test_*.py格式的文件,就依次执行几个
- discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
- #定义测试报告的名称和存储位置
- filename = './testreport/loginReport.html'
-
- #开始执行
- if __name__ == '__main__':
-
- suit=unittest.TestSuite()
- suit.addTest(Login("test_right_login"))
- suit.addTest(Login("test_null_psw_login"))
-
- #以wb(可写的二进制文件)形式,打开文件,若文件不存在,则先执行创建,再执行打开
- fp = open(filename, 'wb')
- #调用HTMLTestRunner生成报告
- runner = HTMLTestRunner.HTMLTestRunner(
- # 指定测试报告的文件
- stream=fp,
- # 测试报告的标题
- title=u"登录网易邮箱测试报告",
- # 测试报告的副标题
- description=u'用例执行情况(win7 64位)'
- )
- #执行用例
- runner.run(discover)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取