使用selenium + python 生成测试报告
首先导包:
from selenium import webdriver import time import unittest import HTMLTestRunner
然后写一个类:
把方法写到类里面
class TestBaidu(unittest.TestCase): # override metherd 重写了父类方法 # 打开百度 #初始化 def setUp(self): self.db = webdriver.Chrome() self.db.get("http://baidu.com") self.db.maximize_window() # 百度搜索的操作 测试用例1 def test_seach(self): input = self.db.find_element_by_id("kw") # 对输入库的操作 input.send_keys("纪昀") # 定位百度按钮元素 btn = self.db.find_element_by_id("su") # 对按钮进行操作 btn.click() # 百度设置每页展示条数 测试用例2 def test_baidu_set(self): db = self.db db.get("http://baidu.com/gaoji/preferences.html") RequType = db.find_element_by_name("NR") RequTypeOptionAll = RequType.find_elements_by_tag_name("option") for values in RequTypeOptionAll: print(values.get_attribute("value")) print(values.text) if "50" in values.text: values.click() break time.sleep(3) # 保存设置 db.find_element_by_xpath("/html/body/form/div/input").click() time.sleep(2) db.switch_to_alert().accept()
然后main 控制程序执行过程 生成测试报告:
if __name__ == '__main__': # 创建测试用例容器 testlist = unittest.TestSuite() # 将用例添加到容器中 testlist.addTest(TestBaidu("test_seach")) # testlist.addTest(类名("函数名")) testlist.addTest(TestBaidu("test_baidu_set")) # 创建测试报告 # 创建文件目录 file = "e:/aaa/baidu.html" fle = open(file, "wb") # 生成测试报告的时候用的是二进制文件wb rb wb 以进制的方式进行读写文件 print(fle) # 定义测试报告,stream定义报告所写入的内容,title为报告标题,description为报告的说明与描述 runner = HTMLTestRunner.HTMLTestRunner( stream=fle, title=u'百度搜索测试报告', description=u'用例执行情况:') # 将测试报告和用例容器关联在一起 runner.run(testlist)
然后run执行,在E盘aaa目录下就会生成daidu.html: