python - Pytest 和 Faker |在每次测试中使用相同的数据

标签 python pytest faker

我正在使用 Pytest 和 Selenium 开发一些测试。 我创建了一个函数,可以生成用于创建帐户的虚假帐户数据。 以下为进入页面(catalogpage)

def fake_account(self, fname, lname, userid, pwd, cpwd):
    self._type(self._fname, fname)
    self._type(self._last_name, lname)
    self._type(self._user_id, userid)
    self._type(self._password, pwd)
    self._type(self._password_confirm, cpwd)

上面的 _type 方法定义到我的基本页面中,如下所示:

    def _type(self, locator, input_text):
        self._find(locator).send_keys(input_text)

我将 fake_account 方法调用到多个测试中,进入另一个页面,如下所示:

class TestFakeAccounts():

      @pytest.fixture()
      def catalogpage(self, driver):
          return catalogpage.CatalogPage(driver)


      def test_account1(self, catalogpage):
          catalogpage.fake_account(fake.name(), "Auth", fake.user_name(), "PassWord_123", "PassWord_123")
      ....
      def test_account2(self, catalogpage):
          catalogpage.fake_account(fake.name(), "Auth", fake.user_name(), "PassWord_123", "PassWord_123")
      ....

当我运行测试时(在测试文件夹中使用 pytest),它将收集我的所有测试,但在整个 session 中使用相同的生成的假数据(对于我的所有测试)。 有没有办法设置这个或 pytest 固定装置,以便它在同一 session 期间为每个测试生成新的假数据?

<小时/>

稍后更新(如果有人需要这个):我能够通过在每个测试中添加“fake.random.seed()”来实现我想要的(不确定这是否是最好的方法,但它对我有用)

最佳答案

通过在每个测试中添加“fake.random.seed()”,我能够实现我想要的目标(不确定这是否是最好的方法,但它对我有用)

关于python - Pytest 和 Faker |在每次测试中使用相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756978/

相关文章:

python - 通过 nose 或 pytest 在 Python 的单元测试中集成 argparse 脚本的建议

python - 如何使用 pytest tmpdir.as_cwd 获取临时路径

c# - 伪造的faker如何设置字符串数组列表

foreign-keys - 模型工厂中的 Laravel 5.1 外键

python - “模块中无名称”导入错误

python - 我怎样才能让这个简单的Python登录程序循环起来?

python - Pytest junit-xml 报告没有 "file"字段

javascript - faker一直显示同一张图,如何避免?

python - 在 facebook oauth 回调上获取代码参数时遇到问题

python - 如何将代理 PAC 文件用于 python urllib 或请求?