pytest selenium 并发多账号登陆测试,数据如何管理
时间: 2024-04-17 07:27:46 浏览: 108
单元测试UnitTest+Pytest【Selenium3】
在 pytest 和 Selenium 中进行并发多账号登录测试时,可以使用数据驱动的方式来管理测试数据。以下是一种常见的方法:
1. 创建一个数据文件,例如 CSV、Excel 或 JSON,用于存储测试数据。每行代表一个账号,每列代表账号的不同属性,如用户名和密码。
2. 在测试代码中,使用适当的库(如 pandas)读取数据文件,并将数据加载到一个列表或字典中。
3. 使用 pytest 的参数化装饰器(@pytest.mark.parametrize)将测试函数参数化,以便在每次测试运行时传递不同的测试数据。
4. 在测试函数中,使用传递的参数获取对应的账号信息,并进行登录操作。
下面是一个简单的示例:
```python
import pytest
import pandas as pd
from selenium import webdriver
@pytest.fixture(scope="module")
def test_data():
# 读取数据文件
data = pd.read_csv('accounts.csv')
# 将数据转换为字典列表
accounts = data.to_dict('records')
return accounts
@pytest.mark.parametrize("account", test_data())
def test_login(account):
# 启动浏览器
driver = webdriver.Chrome()
# 打开登录页面
driver.get("https://example.com/login")
# 输入用户名和密码
driver.find_element_by_id("username").send_keys(account['username'])
driver.find_element_by_id("password").send_keys(account['password'])
# 点击登录按钮
driver.find_element_by_id("login-button").click()
# 验证登录是否成功
assert driver.current_url == "https://example.com/dashboard"
# 关闭浏览器
driver.quit()
```
在上述示例中,`test_data` 是一个 pytest 的 fixture,用于读取数据文件并返回账号列表。`test_login` 函数使用了 `@pytest.mark.parametrize` 装饰器,将 `account` 参数化,使其在每次测试运行时获取不同的账号信息。
请注意,这只是一个简单的示例,实际使用中可能需要根据具体情况进行适当的修改和扩展。
阅读全文