【发布时间】:2016-05-30 22:22:58
【问题描述】:
我在 python 中有多个测试类和一个 basetest 类。 测试类继承自 basetest 类。
我想从命令行运行测试类,它需要一些输入参数,这些输入参数应该存储在配置文件中。该配置文件可以作为命令行的输入提供。
我怎样才能做到这一点,从命令行提供它,然后解析配置文件。我需要在 basetest 类中进行解析,因为这将用于所有测试类。
测试类:如果内容没有多大意义,您可以忽略它们,因为它只是一个示例类
from selenium import webdriver
import unittest
class TestCase():
def setUp(self):
super().setUp()
def test(self):
baseUrl = "https://www.google.com"
driver = webdriver.Firefox()
driver.get(baseUrl)
elementByXpath = driver.find_element_by_xpath("//input[@id='name']")
if elementByXpath is not None:
print("We found an element by XPATH")
if __name__ == '__main__':
unittest.main(verbosity=2)
result = unittest.TestResult()
基本测试用例:
class BaseTestCase():
def __init__(self):
pass
def setUp(self):
# In the setup() or __init__(), config file should be parsed
self.login.login("admin", "admin")
def tearDown(self):
self.log.info("Driver quit, session closed")
将从命令行运行的文件将是测试类。 像这样的东西: python testcase.py --configfile
我对 python 很陌生,非常感谢任何帮助。
我曾经使用 Java 和 TestNG,这真的很容易。我们可以在 TestNG xml 文件本身中提供任何配置。
我正在使用 python 中的 unittest,任何关于哪个框架可以比 unittest 更好的建议也很好。
这是一个 GUI 测试框架,我需要在不同的浏览器和平台上运行测试。
【问题讨论】:
-
使用“ConfigParser”解析配置文件。对于多个浏览器和平台,请尝试使用 BrowserStack 之类的工具或在 Jenkins 实例上手动分配工作人员。
-
提供更多关于您要解析的内容的信息肯定会帮助您获得正确的响应。
-
@a_bhi_9 我需要解析配置文件中的值,然后将它们提供给基础测试类,这些值可以是浏览器名称、操作系统名称,甚至是我只想在基础中使用的任何内容如果代码不知道要调出哪个浏览器,测试类 Browser stack 和 Jenkins 什么都做不了。
-
用你需要的所有配置制作一个“.cfg”或“.ini”文件。然后使用“ConfigParser”库来解析它。我认为您应该参考 Python 文档尝试编写一些解析器代码,如果它不起作用,请寻求更多帮助。
-
@a_bhi_9,对不起,我认为您没有理解这个问题。我知道ini文件和配置解析器。我已经写过一篇了。我想问的是,我在哪里读取 .ini 文件中的值。我需要使用 python unittest __main__() 方法运行测试。将读取哪个位置的 .ini 文件以及如何从命令行提供该文件。那么如何将这些值传递给 BaseTest,因为我需要 BaseTest 中的值。
标签: python selenium selenium-webdriver pytest python-unittest