栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


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

测试结果如下:

测试截图效果如下:

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

spacer.gif

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

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

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

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

©著作权归作者所有:来自51CTO博客作者可米IT的原创作品,如需转载,请注明出处,否则将追究法律责任


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/220263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号