• python+selenium进行cnblog的自动化登录测试


    Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试,可提供点参考!下面就包括测试代码和每种测试情况的截图。

    代码如下:

    1. 1 '''
    2. 2 cnblog的登录测试,分下面几种情况:
    3. 3 (1)用户名、密码正确
    4. 4 (2)用户名正确、密码不正确
    5. 5 (3)用户名正确、密码为空
    6. 6 (4)用户名错误、密码正确
    7. 7 (5)用户名为空、密码正确(还有用户名和密码均为空时与此情况是一样的,这里就不单独测试了)
    8. 8 '''
    9. 9 import unittest
    10. 10 from selenium import webdriver
    11. 11 from time import sleep
    12. 12
    13. 13 class LoginCase(unittest.TestCase):
    14. 14
    15. 15 def setUp(self):
    16. 16 self.dr = webdriver.Chrome()
    17. 17 self.dr.maximize_window()
    18. 18
    19. 19 #定义登录方法
    20. 20 def login(self, username, password):
    21. 21 self.dr.get('https://passport.cnblogs.com/user/signin') #cnblog登录页面
    22. 22 self.dr.find_element_by_id('input1').send_keys(username)
    23. 23 self.dr.find_element_by_id('input2').send_keys(password)
    24. 24 self.dr.find_element_by_id('signin').click()
    25. 25
    26. 26 def test_login_success(self):
    27. 27 '''用户名、密码正确'''
    28. 28 self.login('kemi_xxx', 'kemi_xxxx') #正确用户名和密码
    29. 29 sleep(3)
    30. 30 link = self.dr.find_element_by_id('lnk_current_user')
    31. 31 self.assertTrue('菜鸟可米' in link.text) #用assertTrue(x)方法来断言 bool(x) is True 登录成功后用户昵称在lnk_current_user里
    32. 32 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_success.jpg") #截图 可自定义截图后的保存位置和图片命名
    33. 33
    34. 34 def test_login_pwd_error(self):
    35. 35 '''用户名正确、密码不正确'''
    36. 36 self.login('kemi_xxx', 'kemi') #正确用户名,错误密码
    37. 37 sleep(2)
    38. 38 error_message = self.dr.find_element_by_id('tip_btn').text
    39. 39 self.assertIn('用户名或密码错误', error_message) #用assertIn(a,b)方法来断言 a in b '用户名或密码错误'在error_message里
    40. 40 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_error.jpg")
    41. 41
    42. 42 def test_login_pwd_null(self):
    43. 43 '''用户名正确、密码为空'''
    44. 44 self.login('kemi_xxx', '') #密码为空
    45. 45 error_message = self.dr.find_element_by_id('tip_input2').text
    46. 46 self.assertEqual(error_message,'请输入密码') #用assertEqual(a,b)方法来断言 a == b 请输入密码等于error_message
    47. 47 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_null.jpg")
    48. 48
    49. 49 def test_login_user_error(self):
    50. 50 '''用户名错误、密码正确'''
    51. 51 self.login('kemixing', 'kemi_xxx') #密码正确,用户名错误
    52. 52 sleep(2)
    53. 53 error_message = self.dr.find_element_by_id('tip_btn').text
    54. 54 self.assertIn('该用户不存在', error_message) #用assertIn(a,b)方法来断言 a in b
    55. 55 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_error.jpg")
    56. 56
    57. 57 def test_login_user_null(self):
    58. 58 '''用户名为空、密码正确'''
    59. 59 self.login('', 'kemi_xxx') #用户名为空,密码正确
    60. 60 error_message = self.dr.find_element_by_id('tip_input1').text
    61. 61 self.assertEqual(error_message,'请输入登录用户名') #用assertEqual(a,b)方法来断言 a == b
    62. 62 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_null.jpg")
    63. 63
    64. 64 def tearDown(self):
    65. 65 sleep(2)
    66. 66 print('自动测试完毕!')
    67. 67 self.dr.quit()
    68. 68
    69. 69 if __name__ == '__main__':
    70. 70 unittest.main()

    测试结果如下:

    测试截图如下:

    正确用户名和密码登录成功!

    正确用户名,错误密码登录失败!

    用户名正确,密码为空,登录失败!

    用户名错误,密码正确,登录失败!

    用记名为空,正确密码,登录失败!

    【2023最新】Python自动化测试,7天练完60个实战项目,全程干货。【自动化测试/接口测试/性能测试/软件测试】

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

  • 相关阅读:
    C++项目实战——基于多设计模式下的同步&异步日志系统-①-项目介绍
    ThreadLocal
    SpringSecurity Oauth2实战 - 10 自定义SpEL权限表达式配置白名单url不需要token认证和鉴权
    数据库系统概论简答题带答案
    使用mybatis-plus的saveOrUpdate的问题
    22/7/20
    day26-xpath数据解析
    【白嫖当福利】MeterSphere 部署篇
    2022年,谁才是编程语言中的天选之子?
    PostgreSQL的学习心得和知识总结(九十二)|语法级自上而下完美实现MySQL数据库的 枚举类型创建表及插入数据等操作 的实现方案
  • 原文地址:https://blog.csdn.net/2301_78276982/article/details/133207595