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()

测试结果如下:

测试截图如下:

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

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

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

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

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

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值