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

测试结果如下:

测试截图如下:

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

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

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

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

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

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

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

相关推荐
小于小于大橙子3 小时前
视觉SLAM数学基础
人工智能·数码相机·自动化·自动驾驶·几何学
blues_C4 小时前
Pytest-Bdd-Playwright 系列教程(7):使用测试代码生成辅助工具
自动化测试·软件测试·bdd·playwright
明达技术5 小时前
LVDS高速背板总线:打造分布式I/O高效数据传输新境界
分布式·物联网·自动化·lvds
程序员曦曦7 小时前
一文熟悉redis安装和字符串基本操作
自动化测试·软件测试·数据库·redis·功能测试·程序人生·缓存
互联网杂货铺7 小时前
软件测试之白盒测试(超详细总结)
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
python1568 小时前
20个Python自动化脚本,提升编程能力
运维·python·自动化
测试笔记(自看)12 小时前
selenium+chromedriver下载与安装
selenium·测试工具
小码哥说测试13 小时前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·测试工具·单元测试·pytest·接口测试
qq_4337169514 小时前
编写第一个 Appium 测试脚本:从安装到运行!
自动化测试·软件测试·jmeter·ci/cd·职场和发展·appium·jenkins
原机小子14 小时前
工位管理自动化:Spring Boot企业级工具
数据库·spring boot·自动化