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

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

代码如下:

python 复制代码
 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()

测试结果如下:

测试截图如下:

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

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

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

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

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

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

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

相关推荐
weixin_4181235523 分钟前
Selenium点击元素的方法
python·selenium
程序员小羊!32 分钟前
缺陷及缺陷管理(复习)
功能测试
怒放的生命.34 分钟前
电气自动化入门05:三相异步电动机的正反转点动控制电路
运维·自动化·电气自动化·电工基础
dgiij2 小时前
AutoX.js向后端传输二进制数据
android·javascript·websocket·node.js·自动化
kingapex13 小时前
Appium高级话题:混合应用与原生应用测试策略
自动化测试·appium
AI原吾3 小时前
解锁自动化新境界:KeymouseGo,让键盘和鼠标动起来!
运维·python·自动化·计算机外设·keymousego
迈威通信3 小时前
从EtherCAT到PROFINET,迈威通信带你解锁工业网络!
网络·自动化·信息与通信
pjx9874 小时前
JVM 性能调优与监控
jvm·测试工具
liuwill5 小时前
从技术打磨到产品验证:读《程序员修炼之道》的务实之道
笔记·程序人生
liujiangxu6 小时前
jenkins声明式流水线语法详解
运维·自动化·jenkins