7

我正在对 selenium+python 进行一些研发。我使用 selenium webdriver 和 unittest 模块在 python 中编写了一些测试用例。我想知道如何创建测试用例的报告。selenium 中是否有内置解决方案,或者我需要编写代码来生成文件。

或者在 python 中是否有任何其他具有 javascript 支持的 Web 测试框架具有报告功能。

我基本上是 python 和 selenium 的新手。只是试图探索。

4

6 回答 6

8

要开始在 Selenium+Python 之上构建测试报告,我将利用 python unittest 模块。您将在此处获得 Selenium 文档中的基本示例。

然后HTMLTestRunner模块结合 unittest 提供基本但健壮的 HTML 报告。

于 2012-04-18T22:13:14.487 回答
4

使用 HTMLTestRunner

转到以下网址:

http://tungwaiyip.info/software/HTMLTestRunner.html

  • 点击 HTMLTestRunner.py
  • 复制所有代码
  • 在您的项目中创建一个名为 HTMLTestRunner.py 的文件并转储代码
  • 现在使用 import 关键字在脚本中导入该文件
  • 在 main 方法中调用 HTMLTestRunner

示例代码:

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("shubham.xyz@abc.com")
    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 报告名。你可以随意命名

于 2018-01-29T09:14:07.160 回答
1

我的经验是,任何足够有用的测试框架最终都需要定制的日志记录解决方案。您最终将需要特定领域和上下文相关的信息,而预烘焙的解决方案由于被专门设计为通用且广泛适用,因此永远不会真正符合要求。如果您已经在使用 Python,我建议您查看该logging模块并学习如何编写处理程序和格式化程序。这实际上非常简单,与尝试将所需的日志记录硬塞到某个以硒为中心的模块中相比,您最终会得到更好的结果。

于 2012-04-18T22:08:08.963 回答
1

考虑使用机器人框架。它有一个 selenium 插件,并且机器人产生非常好的日志和报告。使用机器人,您不会直接在 python 中编写测试(不过,我想您可以)。相反,robot 是一个建立在 python 之上的基于关键字的测试系统。

于 2012-04-18T22:20:23.427 回答
1

Robot Framework是一个功能测试框架,它的用户可以:

  • 用易于理解的语言编写测试
  • 组织为特定目的运行哪些测试
  • 生成高级和详细的测试结果
    • 射频结果文件
    • 射频日志文件
    • 网页

在此处输入图像描述

于 2015-05-18T11:15:40.213 回答
0

在我的特定应用程序中,我使用Nose unittest 扩展来编写和运行测试套件。

最重要的是,我使用了一个html 报告插件,它可以从我的测试周期中生成很好的报告。

于 2016-01-13T19:26:20.657 回答