在pytest框架下实现电子商城登录测试,并批量执行用户名密码测试用例
时间: 2024-06-08 15:09:48 浏览: 10
首先,需要安装pytest框架和selenium库。
然后,创建一个测试用例文件`test_login.py`,在文件中编写登录测试用例。可以使用pytest的fixture机制来封装登录操作,使得测试用例调用方便。
```python
import pytest
from selenium import webdriver
@pytest.fixture(scope="module")
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
@pytest.fixture(scope="module")
def login(driver):
driver.get("http://example.com/login")
# 执行登录操作
yield
# 执行退出操作
def test_login_success(driver, login):
# 测试用例:正确的用户名和密码可以成功登录
username = "user1"
password = "password1"
# 输入用户名和密码
# ...
# 点击登录按钮
# ...
# 断言是否成功登录
# ...
def test_login_wrong_password(driver, login):
# 测试用例:错误的密码不能成功登录
username = "user2"
password = "wrong_password"
# 输入用户名和密码
# ...
# 点击登录按钮
# ...
# 断言是否提示密码错误
# ...
def test_login_wrong_username(driver, login):
# 测试用例:错误的用户名不能成功登录
username = "wrong_username"
password = "password3"
# 输入用户名和密码
# ...
# 点击登录按钮
# ...
# 断言是否提示用户名不存在
# ...
# 更多测试用例...
```
最后,可以使用pytest的参数化机制来批量执行用户名密码测试用例。可以创建一个数据文件`test_data.csv`,将用户名密码等测试数据存储在其中。
```csv
username,password
user1,password1
user2,wrong_password
wrong_username,password3
# 更多测试数据...
```
在测试用例文件中,使用pytest.mark.parametrize装饰器来指定参数化的参数,并将测试数据读取出来。
```python
import csv
import pytest
@pytest.mark.parametrize("username,password", csv.reader(open("test_data.csv")))
def test_login(driver, login, username, password):
# 输入用户名和密码
# ...
# 点击登录按钮
# ...
# 断言是否成功登录或者提示登录失败的错误信息
# ...
```
最后,运行`pytest`命令即可执行所有测试用例。在运行时,pytest会自动加载所有以`test_`开头的函数作为测试用例,同时也会执行参数化测试用例。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)