第一版的测试代码有点问题,修改后如下:
#!/usr/bin/env python #coding=utf-8 import unittest from selenium import webdriver class TestBaidu(unittest.TestCase): def setUp(self): self.driver=webdriver.Firefox() def test_baiduPage(self): url = "http://www.baidu.com" self.driver.get(url) title=self.driver.title self.assertLessEqual("百度一下,你就知道",title) def test_search_selenium(self): url = "http://www.baidu.com" self.driver.get(url) inputElement= self.driver.find_element_by_id("kw") inputElement.clear() inputElement.send_keys("selenium") buttonElement=self.driver.find_element_by_id("su") buttonElement.click() title=self.driver.title self.assertEqual("selenium_百度搜索",title) def tearDown(self): self.firefoxBrower.quit() def suit(): test_baidu=unittest.TestSuite() test_baidu.addTest(TestBaidu("test_baiduPage")) test_baidu.addTest(TestBaidu("test_search_selenium")) return test_baidu if __name__ =="__main__": runner=unittest.TextTestRunner() runner.run(suit())
上一版代码问题:
问题1:teardown方法缩进有问题
问题2:main的属性写错了
修改后如上面显示。
但是运行代码是显示如下错误
原因是:火狐浏览器的版本过低,selenium3支持47版本以后的火狐浏览器,升级最新的版本即可解决问题。
最后的是只需要用例执行器,还有以下的方法进行执行用例,方法如下:
1、unittest.main()
2、通过测试套件执行用例,上图显示
def suit(): test_baidu=unittest.TestSuite() test_baidu.addTest(TestBaidu("test_baiduPage")) test_baidu.addTest(TestBaidu("test_search_selenium"))
return test_baidu
Suit方法创建测试套件,然后通过
runner=unittest.TextTestRunner() runner.run(suit())
TextTestRunner提供了测试环境执行测试,测试结果直接打印到窗口,如下图
2、通过另外一种方法进行创建测试套件,如下:
def suit1(): test_baidu=unittest.makeSuite(TestBaidu,"test") alltest=unittest.TestSuite(test_baidu) return alltest
但是以上方法都没有测试报告,只有测试结果。有什么东西可以完成测试报告呢?有一个类HTMLTestRunner,但是需要另外下一个文件,具体使用方法如下链接
HTMLTestRunner:使用方法详见以下连接:
https://blog.csdn.net/weixin_36650524/article/details/78562840
具体例子如下:
fr =open("testReport.html","wb") runner=HTMLTestRunner.HTMLTestRunner(stream=fr,title="测试报告",description="详情") runner.run(suit1())
报告的格式是html,路径在运行代码目录下,打开效果如下: