输入用户名和密码,通过 pytest 进行断言访问mysql数据库并验证,通过断言结果生成网页测试报告
时间: 2023-12-21 09:04:25 浏览: 75
好的,这里提供一个示例代码,需要先安装 `pytest`、`pytest-html`、`pymysql` 这三个库:
```python
import pytest
import pymysql
@pytest.fixture(scope='module')
def db():
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='test_db')
yield conn
# 关闭数据库连接
conn.close()
@pytest.mark.parametrize('username, password, expected', [
('user1', 'pwd1', True),
('user2', 'pwd2', False),
('user3', 'pwd3', True),
])
def test_login(db, username, password, expected):
# 查询数据库
cursor = db.cursor()
cursor.execute(f"SELECT * FROM user WHERE username='{username}' AND password='{password}'")
result = cursor.fetchone()
assert (result is not None) == expected
if __name__ == '__main__':
pytest.main(['-v', '-s', '--html=report.html'])
```
在上面的代码中,我们使用了 `pytest` 框架进行测试,并通过 `pytest.mark.parametrize` 来传入多个参数进行测试。在 `test_login` 函数中,我们首先连接数据库,然后查询数据库中是否存在对应的用户名和密码,最后通过断言来验证结果是否正确。
运行该脚本后,会生成一个名为 `report.html` 的测试报告,其中包含了测试结果、测试用例的执行时间、执行结果等详细信息。
阅读全文