用python+selenium进行一次cnblog的登录测试

用python+selenium自动化进行一次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里

    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里

    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

    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

    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

    def tearDown(self):
        sleep(2)
        self.dr.quit()

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

截图如下:

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

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

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

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

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

时间: 2024-11-06 12:11:57

用python+selenium进行一次cnblog的登录测试的相关文章

python+selenium自动化软件测试(第10章):测试驱动TDD

测试驱动开发模式,要求开发在写业务代码的时候,先写出测试代码,同时单元测试例子决定了如何来写产品的代码,并且不断的成功的执行编写的所有的单元测试例子,不断的完善单元测试例子进而完善产品代码, 这样随着功能的开发完成,测试代码也会对应的完成, 很显然,这是一个全新的开发模式, 在一定程度上,可以完全的提高软件的质量,以及开发可以对自己写的代码进行一个全面的评估和测试. TDD 模式是一个很大的概念,在这里, 我重点介绍下测试驱动模式与自动化的融合以及精简自动化的测试代码.下面我们来看一个登录的案例

用Python selenium+webdriver的一个简单的登录自动化测试--豆丁网登录测试

#coding=utf-8 from selenium import webdriver #from selenium.webdriver.remote import switch_to #from selenium.webdriver.common import alert #import unittest  import time,os def users_zidian():  #用户名用例用一个字典实现参数化调用#     users={'zhengshuheng':'123456','[

Python+Selenium使用Page Object实现页面自动测试 -未完待续

Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况. 当页面元素id变化时,只需要更改测试页Class中页面的属性即可. Page Object模式是一种自动化测试设计模式,将页面定位和业务操作分开,提高用例的可维护性. unittest是一种单元测试

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

Web登录测试是很常见的测试!手动测试大家在熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试,给大家提供点参考!下面就包括测试代码和每种测试情况的截图: ''' cnblog的登录测试,分下面几种情况: (1)用户名.密码正确 (2)用户名正确.密码不正确 (3)用户名正确.密码为空 (4)用户名错误.密码正确 (5)用户名为空.密码正确(还有用户名和密码均为空时与此情况是一样的

Python Selenium 文件下载

Python Selenium 进UI自动化测试时都会遇到文件上传和下载的操作,下面介绍一下文件下载的操作 这里介绍使用FireFox浏览器进行文件下载的操作. 1.设置文件默认下载地址 如下图,firefox可以通过 在地址栏输入:about:config 或about:aupport 来查看或修改配置信息. 2.设置自动下载操作 这里有两种解决方式 2.1.设置自动保存下载 如下图勾选:以后自动采用相同的动作处理此类文件 这样下次在下载该类型的文件时就不会这样提醒了. 2.2.修改设置可以在

Python + Selenium 实现登录Office 365

最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解,据说是用了Google的IP,whatever……) 试图研究一下Selenium和WebDriver的关系,看了官方的介绍,先摘录一段有趣的内容: Jump to 2008. The Beijing Olympics mark China’s arrival as a global power,

Python+Selenium自动化模拟用户登录(备注:记录一次强行卸载rpm依赖包,引发的rpm、yum等命令异常,无法远程xftp工具)

近期在摸索Python+Selenium自动化,实现模拟用户登录搜索等操作,反馈相关日志,再交由Zabbix分析,监控页面访问是否正常. 期间需要对Linux火狐浏览器进行升级,由于生产环境为内网环境,无法使用yum进行升级.本想在外网环境下使用Docker进行安装,然后打成镜像后迁移到内网环境.但由于系统为Red Hat 6.4对Docker支持较差,故在外网将相关依赖包下载后进行安装. 外网环境下,下载Firefox及相关依赖组件相关操作.         1.更新本地yum源为阿里yum源

《一头扎进》系列之Python+Selenium框架设计篇3- 价值好几K的框架,狼来了,狼来了....,狼没来,框架真的来了

1. 简介 前边宏哥一边一边的喊框架,就如同一边一边的喊狼来了!狼来了!.....这回是狼没有来,框架真的来了.从本文开始宏哥将会一步一步介绍,如何从无到有地创建自己的第一个自动化测试框架.这一篇,我们介绍,如何封装自己的日志类和浏览器引擎类. 2. 创建项目层级结构 如何创建,怎么创建.这个就需要我们前边介绍的框架概要设计以及框架的详细设计的思维导图,宏哥就是根据那个图,轻松地.清楚的.思路清晰地一步一步创建项目层级结构. 相关步骤: 1. 打开PyCharm,创建如下格式的项目层级结构,为了

《一头扎进》系列之Python+Selenium框架实战篇4- 价值好几K的框架,呵!这个框架有点意思啊!!!

1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法,这个我们会在这篇文章由宏哥实现. 2.项目层级结构 1. 上一篇中我们已经创建好了项目层级结构,具体项目层级结构如下图.这里不再赘述,相关文件也如下: 3. 定位和截图类封装 1. 在实现封装基类里