Selenium + Python 2.x 的自动化测试执行报告

问题描述 投票:0回答:6

我正在对

Selenium
Python 2.7.x
进行一些研发。

我使用

Python
Selenium WebDriver
模块在
unittest
中编写了一些测试用例。

我想知道如何创建测试用例报告。 selenium 中是否有可用的内置解决方案,或者我需要编写代码来生成文件?

或者

web testing framework
中是否有任何其他具有
JavaScript
支持且具有报告功能的
Python

我基本上对

Python
以及
Selenium
都是新手。只是想探索一下。

python-2.7 selenium-webdriver report
6个回答
9
投票

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

然后,HTMLTestRunner模块与unittest相结合,提供基本但强大的HTML报告。


5
投票

使用 HTMLTestRunner

前往以下网址:

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

  • 单击 HTMLTestRunner.py
  • 复制所有代码
  • 在项目中创建一个名为 HTMLTestRunner.py 的文件并转储代码
  • 现在使用 import 关键字将该文件导入到脚本中
  • 在主方法中调用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("[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 报告名称。你可以随意命名


1
投票

我的经验是,任何足够有用的测试框架最终都需要定制的日志记录解决方案。您最终将需要特定领域和上下文相关的信息,而预先制定的解决方案永远不会真正符合要求,因为它们经过专门设计,具有通用性和广泛适用性。如果您已经在使用 Python,我建议您查看

logging
模块并学习如何编写处理程序和格式化程序。它实际上非常简单,与尝试将所需的日志记录硬塞到某个以硒为中心的模块中相比,您最终会得到更好的结果。


1
投票

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


1
投票

Robot Framework 是一个功能测试框架,使用户能够:

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

enter image description here


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.