我正在对
Selenium
和 Python 2.7.x
进行一些研发。
我使用
Python
和 Selenium WebDriver
模块在 unittest
中编写了一些测试用例。
我想知道如何创建测试用例报告。 selenium 中是否有可用的内置解决方案,或者我需要编写代码来生成文件?
或者
web testing framework
中是否有任何其他具有 JavaScript
支持且具有报告功能的 Python
?
我基本上对
Python
以及 Selenium
都是新手。只是想探索一下。
要开始在 Selenium+Python 上构建测试报告,我将利用 python unittest 模块。您将在 Selenium 文档中获得基本示例这里。
然后,HTMLTestRunner模块与unittest相结合,提供基本但强大的HTML报告。
使用 HTMLTestRunner
前往以下网址:
http://tungwaiyip.info/software/HTMLTestRunner.html
示例代码:
from selenium import webdriver
import unittest
import HTMLTestRunner
class LoginTest(unittest.TestCase):
def setUp(self):
print driverpath
self.driver = webdriver.Chrome(driverpath + "chromedriver.exe")
self.driver.get("http://google.com/")
def testPythonScript(self):
driver=self.driver
driver.maximize_window()
driver.implicitly_wait(60)
driver.get_screenshot_as_file(screenshotpath + "testPngFunction.png")
driver.find_element_by_xpath("(//a[contains(@href,'contact-us')])[1]").click()
driver.find_element_by_name("name").send_keys("shubham")
driver.find_element_by_id("contactemail").send_keys("[email protected]")
driver.find_element_by_css_selector("#contact_form > div:nth-child(3) > div:nth-child(3) > input").send_keys(
"389198318312")
driver.find_element_by_name("company").send_keys("myname")
driver.get_screenshot_as_file(screenshotpath + "ConatctUs.png")
print driver.title
assert "Hello" in driver.title
print "execution ends"
def testPythonFailScript(self):
driver=self.driver
driver.find_element_by_name("notExist").send_keys("done")
def tearDown(self):
driver = self.driver
driver.quit();
if __name__ == "__main__":
HTMLTestRunner.main()
现在打开终端并按照命令启动
python scriptFileName.py > TestReport.HTML
注意:scriptFileName 是 python 文件名,TestReport 是 html 报告名称。你可以随意命名
我的经验是,任何足够有用的测试框架最终都需要定制的日志记录解决方案。您最终将需要特定领域和上下文相关的信息,而预先制定的解决方案永远不会真正符合要求,因为它们经过专门设计,具有通用性和广泛适用性。如果您已经在使用 Python,我建议您查看
logging
模块并学习如何编写处理程序和格式化程序。它实际上非常简单,与尝试将所需的日志记录硬塞到某个以硒为中心的模块中相比,您最终会得到更好的结果。
考虑使用机器人框架。它有一个硒插件,机器人可以生成非常好的日志和报告。使用机器人,您不会直接用 python 编写测试(不过,我想您可以)。相反,robot 是一个构建在 python 之上的基于关键字的测试系统。
Robot Framework 是一个功能测试框架,使用户能够:
在我的特定应用程序中,我使用 Nose 单元测试扩展来编写和运行测试套件。
最重要的是,我使用一个 html-reporting 插件,它可以从我的测试周期中生成漂亮的报告。