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

测试截图如下:

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

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

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

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

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

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

更多推荐



所有评论(0)