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

测试结果如下:

测试截图如下:

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

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

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

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

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

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

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

相关推荐
zixu_star2 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
QXWZ_IA7 小时前
管道GIS测绘如何实现自动化成图:三种成图方式怎么选
运维·人工智能·安全·自动化
严肃小白兔8 小时前
GitHub 个人仓库正式支持结构化 Issue:从标签管理到自动化任务工作流
自动化·github·issue
专注仿真1 天前
自动化测试实战项目开发:从零搭建一套可落地的测试框架
自动化测试
goehou2 天前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
Frankie_stand2 天前
测试自动化实战指南:从脚本化、自动判据到 CI 集成的完整落地路径
android·ci/cd·自动化
freejackman3 天前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
秋天的怀念_David3 天前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
坐吃山猪3 天前
Python22-PostMan调试MCP
测试工具·postman·mcp
总裁余(余登武)3 天前
【python项目】:1操作EXCEl自动化开发
python·自动化·excel