HTML报告生成
脚本执行完后,还需要看HTML报告。
在生成报告之前要先保证自己的python目录…\Python38\Lib下有HTMLTestRunner.py
runnerall.py:
import unittest
import HTMLTestRunner
import sys,time,os
#手工添加案例到套件
def creatsuit():
discover = unittest.defaultTestLoader.discover('../test',pattern='test*.py',top_level_dir=None)
print(discover)
return discover
if __name__=="__main__":
curpath = sys.path[0]
#取当前时间
now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))
if not os.path.exists(curpath+'/resultreport'):
os.mkdir(curpath+'/resultreport')
filename=curpath+'/resultreport/'+now+'resultreport.html'
with open(filename, 'wb') as fp:
#生成HTML报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况', verbosity=2)
suite = creatsuit()
runner.run(suite)
打开生成的HTML报告:
异常捕获与错误截图
用例不可能每一次运行都成功,也有不成功的时候,如果能够将错误截图保存就大大的带来了便利
#截图
def savescreenshot(self,driver,file_name):
if not os.path.exists('../image'):
os.makedirs('../image')
now = time.strftime('%Y-%m-%d-%H %M %S',time.localtime(time.time()))
#截图保存
driver.get_screenshot_as_file('../image/'+now+'-'+file_name)
time.sleep(3)
执行test_hao_123函数:
成功截图:
数据驱动
遇到需要多次执行一个案例,如百度分别输入中文,英文,不同姓名等进行搜索,此时就要使用ddt数据驱动,在使用前首先要安装ddt
#检查自己是否安装了ddt
pip show ddt
#安装ddt
python -m pip install ddt
脚本:
from selenium import webdriver
import unittest,time
from ddt import data,ddt
@ddt
class Baidu1(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url="https://www.baidu.com/"
self.verificationErrors=[]
self.accept_next_alert=True
@data("java", "c", "python", "c++")
def test_baidu1(self, value):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(value)
driver.find_element_by_id("su").click()
time.sleep(3)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
运行结果: