python自动化测试demo
时间: 2023-09-07 22:18:32 浏览: 64
好的,以下是一个简单的Python自动化测试demo,使用了unittest测试框架和Selenium WebDriver。
假设我们要测试一个简单的登录页面,包括用户名、密码和登录按钮。我们需要编写一个测试脚本,使用Selenium WebDriver进行自动化测试,并使用unittest框架进行测试管理和报告生成。
首先,我们需要安装Selenium WebDriver和unittest框架,以及引入它们的库:
```python
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
```
然后,我们可以编写一个测试类,继承unittest.TestCase类,并在其中编写测试方法。例如,我们可以编写一个测试登录的方法:
```python
class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://example.com/login")
def test_login(self):
user = self.driver.find_element_by_name("username")
user.send_keys("myusername")
password = self.driver.find_element_by_name("password")
password.send_keys("mypassword")
login_button = self.driver.find_element_by_xpath("//button[@type='submit']")
login_button.click()
welcome_message = self.driver.find_element_by_xpath("//div[@class='welcome-message']")
self.assertEqual(welcome_message.text, "Welcome, myusername!")
def tearDown(self):
self.driver.quit()
```
在测试方法中,我们首先打开浏览器并访问登录页面,然后输入用户名和密码并单击登录按钮。最后,我们检查是否出现了欢迎消息,并使用self.assertEqual方法进行断言。
最后,我们可以编写一个测试运行器,使用unittest.TestLoader和unittest.TextTestRunner运行测试并生成测试报告:
```python
if __name__ == '__main__':
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(TestLogin)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
```
完整的测试脚本如下所示:
```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()
self.driver.get("http://example.com/login")
def test_login(self):
user = self.driver.find_element_by_name("username")
user.send_keys("myusername")
password = self.driver.find_element_by_name("password")
password.send_keys("mypassword")
login_button = self.driver.find_element_by_xpath("//button[@type='submit']")
login_button.click()
welcome_message = self.driver.find_element_by_xpath("//div[@class='welcome-message']")
self.assertEqual(welcome_message.text, "Welcome, myusername!")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(TestLogin)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
```
这是一个简单的Python自动化测试demo,可以帮助您入门。当然,在实际项目中,您需要编写更复杂的测试脚本,并使用更多的Selenium和unittest功能来测试不同的场景和功能。
阅读全文