复制代码

python 自动化测试案例

使用 Selenium 与 unittest 框架的自动化测试案例,可以用来模拟浏览器自动打开网站并提交表单:

在下述代码中,我们定义了一个继承自 unittest.TestCase 的测试类 TestLoginForm,其中 setUp() 方法在每个测试方法执行前会调用,用来启动浏览器并打开测试用网站。tearDown() 方法在每个测试方法执行后会调用,用来关闭浏览器。

test_login_successful() 和 test_login_failed() 分别表示登录成功和登录失败的测试方法。在测试方法中,我们首先使用 Selenium 的 find_element_by_id() 方法获取用户名、密码和提交按钮的输入框。然后输入对应的数据并点击提交按钮。最后,我们使用 Python 的 assertEqual() 断言方法来验证测试结果是否符合预期。如果断言失败则会输出对应的错误信息。

使用 unittest 框架可以方便地对多个测试用例进行管理和执行,并输出详细的测试报告。

import unittest
from selenium import webdriver

class TestLoginForm(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://example.com/login")

    def tearDown(self):
        self.driver.quit()

    def test_login_successful(self):
        username_input = self.driver.find_element_by_id("username")
        password_input = self.driver.find_element_by_id("password")
        submit_button = self.driver.find_element_by_id("submit")

        # 输入用户名和密码
        username_input.send_keys("testuser")
        password_input.send_keys("testpassword")

        # 提交表单
        submit_button.click()

        # 验证登录是否成功,例如检查是否跳转至了登录后的页面
        self.assertEqual(self.driver.current_url, "http://example.com/dashboard", "登录成功后跳转失败")

    def test_login_failed(self):
        username_input = self.driver.find_element_by_id("username")
        password_input = self.driver.find_element_by_id("password")
        submit_button = self.driver.find_element_by_id("submit")

        # 输入错误的用户名和密码
        username_input.send_keys("invaliduser")
        password_input.send_keys("invalidpassword")

        # 提交表单
        submit_button.click()

        # 验证是否显示错误信息
        error_message = self.driver.find_element_by_id("error-message").text
        self.assertEqual(error_message, "用户名或密码错误", "错误信息不正确")

 

posted @ 2023-05-08 16:04  怪~咖  阅读(154)  评论(0编辑  收藏  举报
复制代码