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

代码如下:

 '''
 cnblog的登录测试,分下面几种情况:
 (1)用户名、密码正确
 (2)用户名正确、密码不正确
 (3)用户名正确、密码为空
 (4)用户名错误、密码正确
 (5)用户名为空、密码正确(还有用户名和密码均为空时与此情况是一样的,这里就不单独测试了)
 '''
 import unittest
 from selenium import webdriver
 from time import sleep

 class LoginCase(unittest.TestCase):

     def setUp(self):
         self.dr = webdriver.Chrome()
         self.dr.maximize_window()

     #定义登录方法
     def login(self, username, password):
         self.dr.get('https://passport.cnblogs.com/user/signin')  #cnblog登录页面
         self.dr.find_element_by_id('input1').send_keys(username)
         self.dr.find_element_by_id('input2').send_keys(password)
         self.dr.find_element_by_id('signin').click()

     def test_login_success(self):
         '''用户名、密码正确'''
         self.login('kemi_xxx', 'kemi_xxxx') #正确用户名和密码
         sleep(3)
         link = self.dr.find_element_by_id('lnk_current_user')
         self.assertTrue('菜鸟可米' in link.text)   #用assertTrue(x)方法来断言  bool(x) is True 登录成功后用户昵称在lnk_current_user里
         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_success.jpg")  #截图  可自定义截图后的保存位置和图片命名

     def test_login_pwd_error(self):
         '''用户名正确、密码不正确'''
         self.login('kemi_xxx', 'kemi')  #正确用户名,错误密码
         sleep(2)
         error_message = self.dr.find_element_by_id('tip_btn').text
         self.assertIn('用户名或密码错误', error_message)  #用assertIn(a,b)方法来断言 a in b  '用户名或密码错误'在error_message里
         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_error.jpg")

     def test_login_pwd_null(self):
         '''用户名正确、密码为空'''
         self.login('kemi_xxx', '')  #密码为空
         error_message = self.dr.find_element_by_id('tip_input2').text
         self.assertEqual(error_message,'请输入密码')  #用assertEqual(a,b)方法来断言  a == b  请输入密码等于error_message
         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_null.jpg")

     def test_login_user_error(self):
         '''用户名错误、密码正确'''
         self.login('kemixing', 'kemi_xxx')  #密码正确,用户名错误
         sleep(2)
         error_message = self.dr.find_element_by_id('tip_btn').text
         self.assertIn('该用户不存在', error_message)  #用assertIn(a,b)方法来断言 a in b
         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_error.jpg")

     def test_login_user_null(self):
         '''用户名为空、密码正确'''
         self.login('', 'kemi_xxx')  #用户名为空,密码正确
         error_message = self.dr.find_element_by_id('tip_input1').text
         self.assertEqual(error_message,'请输入登录用户名')  #用assertEqual(a,b)方法来断言  a == b
         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_null.jpg")

     def tearDown(self):
         sleep(2)
         print('自动测试完毕!')
         self.dr.quit()

 if __name__ == '__main__':
     unittest.main()

测试结果如下:

测试截图如下:

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

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

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

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

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

一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试的更多相关文章

  1. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  2. 基于Python实现的死链接自动化检测工具

    基于Python实现的死链接自动化检测工具   by:授客 QQ:1033553122 测试环境: win7 python 3.3.2 chardet 2.3.0 脚本作用: 检测系统中访问异常(请求 ...

  3. web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

    基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  4. Python Selenium Cookie 绕过验证码实现登录

    Python Selenium Cookie 绕过验证码实现登录 之前介绍过博客园的通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1. ...

  5. 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  6. 短文本分析----基于python的TF-IDF特征词标签自动化提取

    绪论 最近做课题,需要分析短文本的标签,在短时间内学习了自然语言处理,社会标签推荐等非常时髦的技术.我们的需求非常类似于从大量短文本中获取关键词(融合社会标签和时间属性)进行用户画像.这一切的基础就是 ...

  7. selenium识别登录验证码---基于python实现

    本文主要是通过PIL+pytesseract+Tesseract-OCR实现验证码的识别 其中PIL为Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PI ...

  8. python selenium中使用ddt进行数据驱动测试

  9. python selenium与自动化

    大学是学习过java,但是工作中没用,忘完了,而且哪怕以后有了机会,就是很不愿意去学这个语言,开始喜欢上了c#,但是随着学的升入,感觉.net太庞大了,要学习那么多,总感觉我学这个要做什么,感觉要做的 ...

随机推荐

  1. NHibernate系列文章二十三:NHibernate查询之Criteria查询(附程序下载)

    摘要 上一篇文章介绍了NHibernate HQL,他的缺点是不能够在编译时发现问题.如果数据库表结构有改动引起了实体关系映射的类有改动,要同时修改这些HQL字符串.这篇文章介绍NHibernate面 ...

  2. SeaJS学习笔记(一) ./ 和 ../ 区别

    最近要去实习,公司里使用sea.js进行模块化开发 具体下载安装就不多说了,请参见SeaJS官网 <!DOCTYPE html> <html> <head> < ...

  3. Java多线程初学者指南(4):线程的生命周期

    与人有生老病死一样,线程也同样要经历开始(等待).运行.挂起和停止四种不同的状态.这四种状态都可以通过Thread类中的方法进行控制.下面给出了Thread类中和这四种状态相关的方法. // 开始线程 ...

  4. cocos2d-x 2.1.4 使用create_project.py脚本创建项目+ant打包项目

    1.创建项目:执行create_project.py脚本,进入Doc界面输入下面的命令: cd D:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\tools\project-cre ...

  5. jquery mobile图片自适应屏幕

    jquery mobile中如果不给img标签指定宽度的话,无法达到自适应屏幕的效果,特此备注:width:100%;

  6. Energy Minimization

    zoj2539:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2539 题意:公式第一项只要当xi=0时才会有作用,第二项只 ...

  7. huffman压缩解压文件【代码】

    距离上次写完哈夫曼编码已经过去一周了,这一周都在写huffman压缩解压,哎,在很多小错误上浪费了很多时间调bug.其实这个程序的最关键部分不是我自己想的,而是借鉴了某位园友的代码,但是,无论如何,自 ...

  8. HeatMap

    Reprinting From https://blog.csdn.net/JNingWei/article/details/78803669 ColorMap(色度图) 在图像处理中,伪色彩用途广泛 ...

  9. Magicodes.NET框架之路——产品之路(谈谈产品管理)

    虽然Magicodes.NET现在还不属于产品,但是却不妨碍她想成为产品的心. 为什么突然有了此篇,这篇不是空穴来风,而是我思考良久的结果: 为了让大家知道我在干什么,我想干什么,我将要干什么还有我干 ...

  10. Oozie分布式工作流——EL表达式

    oozie支持使用EL(expression language)表达式. 基本的EL常量 KB MB GB TB PB 基本EL函数 string firstNotNull(String value1 ...