【问题标题】:How to run tests one by one using just one row from CSV file?如何仅使用 CSV 文件中的一行来运行测试?
【发布时间】:2021-05-20 12:04:07
【问题描述】:

大家好,这是我在这里的第一篇文章。我正在学习使用 Python 进行测试自动化,但遇到了一个问题。

我有一个测试类,类似的东西

test_scenario_1.py

class TestClass:

        @pytest.mark.run(order=1)
        @data(*getdatafromcsvfile("Logins.csv"))
        @unpack
        def test_1(self, logins):
                self.login(logins)

        def test_2(self):
                self.display_name()

Logins.csv

Logins
user_A
user_B
user_C

我正在使用 pytest,当我从终端运行 test_scenario_1.py 时,test_1 将使用 CSV 文件中的所有行执行 3 次,然后 test_2 。在第一次执行 test_1 后是否有可能运行第二次测试? 简单来说,我想为每个用户登录(表单 csv 文件)并一一显示他们的名字。 你有什么想法在这种情况下我应该怎么做?

【问题讨论】:

  • 也许用字典来存储用户的名字,然后一次性列出来?

标签: python selenium selenium-webdriver ddt


【解决方案1】:

最佳做法是始终保持测试隔离并从干净的浏览器实例运行它们。每个测试都应该启动一个新的浏览器,运行测试,然后关闭浏览器。这可以确保每次测试都以干净的方式开始。如果您之前的一项测试遇到错误或使您的网站处于不良状态怎么办?然后在该浏览器实例上运行的所有后续测试都会失败或受到不良状态的影响,并且可能会给出误报或误报。

只需将登录名添加到第二个测试。如果没有任何关于 self.login() 中内容的详细信息,可能不再值得将其作为测试。只需进行一次测试即可...

def test_1(self, logins):
    self.login(logins)
    self.display_name()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2011-05-31
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多