我们测试结果需要用到报告输出,那么我们如何定义一个简单的报告呢?
这里我们借助HTMLTestRunner,下载地址 点击打开链接
关于这个模块python 2和python 3有点区别,目前网上下载的点击打开链接只有2,这里我们如果用到的是python3则需要将下载的2里面的文件修改一下
需要修改的地方
1.第94行,将import StringIO修改成import io
2.第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
3.第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
4.第766行,将uo = o.decode('latin-1')修改成uo = e
5.第775行,将ue = e.decode('latin-1')修改成ue = e
6.第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
下面开始我们以百度搜索为例
新建一个模块为baidu.py
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
import unittest #导入unittest
import HTMLTestRunner #导入HTMLTestRunner这个模块
class Baidu(unittest.TestCase): #新建一个类继承于unittest.TestCase
def setUp(self):#用例开始初始化
self.driver=webdriver.Chrome()
self.driver.implicitly_wait(30)
self.base_url="https://www.baidu.com"
self.verificationErrors=[]
self.accept_next_alert = True
def test_baidu(self): #打开百度搜索
driver=self.driver
driver.get(self.base_url)
sleep(10)
driver.find_element_by_id('kw').click()
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('selenium webdriver')
driver.find_element_by_id('su').click()
sleep(3)
driver.close()
def tearDown(self):#用例结束
self.driver.quit()
self.assertEqual([],self.verificationErrors) 判断测试结果
if __name__=='__main__':
test= unittest.TestSuite()
test.addTest(Baidu("test_baidu")) #把测试用例添加到测试套件中
file_path=r"E:\result.html" #定义报告路径
file_result=open(file_path,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=file_result,title=u"",description="")
runner.run(test)
file_result.close()
2.我们也可以再新建一个文件 case1.py
import unittest
from baidu import Baidu
import HTMLTestRunner
test= unittest.TestSuite()
test.addTest(Baidu("test_baidu"))
file_path=r"E:\result.html"
file_result=open(file_path,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=file_result,title=u"",description="")
runner.run(test)
file_result.close()