本文共 2442 字,大约阅读时间需要 8 分钟。
Web 登录测试是自动化测试中非常常见的场景,手动测试虽然直观,但效率较低。如何实现自动化登录测试呢?本文将基于 Python + Selenium 结合 unittest 单元测试框架,通过简单但完整的 cnblog 登录测试案例,为大家提供参考。
以下是完整的测试代码及各测试场景的截图说明:
import unittestfrom selenium import webdriverfrom time import sleepclass LoginCase(unittest.TestCase): def setUp(self): self.dr = webdriver.Chrome() self.dr.maximize_window() def login(self, username, password): self.dr.get('https://passport.cnblogs.com/user/signin') self.dr.find_element_by_id('input1').send_keys(username) self.dr.find_element_by_id('input2').send_keys(password) self.dr.find_element_by_id('signin').click() def test_login_success(self): self.login('kemi_xxx', 'kemi_xxxx') sleep(3) link = self.dr.find_element_by_id('lnk_current_user') self.assertTrue('菜鸟可米' in link.text) self.dr.get_screenshot_as_file("D:\cnblogtest\\login_success.jpg") def test_login_pwd_error(self): self.login('kemi_xxx', 'kemi') sleep(2) error_message = self.dr.find_element_by_id('tip_btn').text self.assertIn('用户名或密码错误', error_message) self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_error.jpg") def test_login_pwd_null(self): self.login('kemi_xxx', '') error_message = self.dr.find_element_by_id('tip_input2').text self.assertEqual(error_message, '请输入密码') self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_null.jpg") def test_login_user_error(self): self.login('kemixing', 'kemi_xxx') sleep(2) error_message = self.dr.find_element_by_id('tip_btn').text self.assertIn('该用户不存在', error_message) self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_error.jpg") def test_login_user_null(self): self.login('', 'kemi_xxx') error_message = self.dr.find_element_by_id('tip_input1').text self.assertEqual(error_message, '请输入登录用户名') self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_null.jpg") def tearDown(self): sleep(2) print('自动测试完毕!') self.dr.quit() if __name__ == '__main__': unittest.main() 用户名、密码正确登录成功!
用户名正确、密码错误登录失败!
用户名正确、密码为空登录失败!
用户名错误、密码正确登录失败!
用户名为空、密码正确登录失败!
以上测试用例涵盖了 cnblog 登录功能的主要场景,能够帮助开发人员全面验证登录功能的正常性。通过 Selenium 和 unittest 框架的结合,实现了自动化测试的编写,使测试流程更加高效和可靠。
转载地址:http://ggofk.baihongyu.com/