用unittest写一套最简单的网页登录的数据驱动测试实例
时间: 2024-03-15 10:41:46 浏览: 14
好的,以下是一个最简单的网页登录的数据驱动unittest测试实例:
```python
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def tearDown(self):
self.driver.quit()
def test_login(self):
test_cases = [
('user1', 'password1', 'Login was successful.'),
('user2', 'password2', 'Invalid username or password.'),
('user3', 'password3', 'Invalid username or password.')
]
for username, password, expected in test_cases:
with self.subTest(username=username, password=password, expected=expected):
self.driver.get('http://www.example.com/login')
username_elem = self.driver.find_element_by_name('username')
username_elem.send_keys(username)
password_elem = self.driver.find_element_by_name('password')
password_elem.send_keys(password)
password_elem.send_keys(Keys.RETURN)
message_elem = self.driver.find_element_by_id('message')
self.assertEqual(message_elem.text, expected)
if __name__ == '__main__':
unittest.main()
```
这个测试案例使用了unittest框架和Selenium库,并测试了网页登录功能。我们创建了一个包含三个测试用例的列表,每个测试用例都是一个元组,包含用户名、密码和预期结果。我们使用for循环遍历测试用例,并模拟用户在网页上输入用户名、密码和回车键。然后,我们查找登录结果元素,并使用assertEqual()函数检查实际结果是否与预期结果相等。如果测试通过,则不会有任何输出,否则会输出失败消息,以便我们可以检查问题并进行修复。
在这个测试案例中,我们使用了unittest的数据驱动功能,即使用for循环遍历测试用例。为了使测试结果更加清晰,我们使用了with self.subTest()上下文管理器,并传入测试数据。这样,当测试用例失败时,unittest会输出具体的测试数据,方便我们进行调试。
要运行这个测试案例,我们需要先安装Selenium库,并下载对应浏览器的驱动程序。然后,在命令行中执行以下命令:
```
python test_login.py
```
这会自动运行测试,并输出测试结果。