Python + selenium实战:自动化登录功能测试用例,入门级!

这篇具有很好参考价值的文章主要介绍了Python + selenium实战:自动化登录功能测试用例,入门级!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

测试行业真是越来越卷了,点点点几乎没有竞争力,入行几乎都需要掌握一些自动化技术,本文就小编最近学习的 python + selenium 进行一个简单的登录功能实现

适用对selenium python unittest有一些了解的同学,大佬轻喷~


用到的🔧

python
selenium
time
ddt
openpyxl
unittest
HTMLTestRunner


实现过程

1.整体框架

自动化测试封装登录功能,软件测试,python,python,selenium,自动化

2.准备数据

data/login.xlsx

自动化测试封装登录功能,软件测试,python,python,selenium,自动化

将从表格中获取测试数据的方法进行了封装
common/doExcel.py

from openpyxl import load_workbook


class DoExcel:

    def __init__(self, filename):
        self.filename = filename
        self.wb = load_workbook(filename)
        self.sheets = self.wb.sheetnames
        self.sheet_data = self.wb[self.sheets[0]]

    def read_excel(self):
        rows = self.sheet_data.max_row + 1
        cols = self.sheet_data.max_column + 1

        caseData = []

        for i in range(2, rows):
            case = {}
            for j in range(1, cols):
                value = self.sheet_data.cell(i, j).value
                case[self.sheet_data.cell(1, j).value] = value
            caseData.append(case)

        return caseData

if __name__ == '__main__':
    rd = DoExcel("/Users/yanghui/PycharmProjects/unittestProject/data/login.xlsx").read_excel()
    print(rd)

Python & openpyxl 对 Excel 文件的读写操作文章来源地址https://www.toymoban.com/news/detail-800329.html

3.测试用例

case/test_login.py

import unittest
from ddt import ddt, data,file_data,unpack
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from common.doExcel import DoExcel


def get_data_case():
    login_data = DoExcel("/Users/yanghui/PycharmProjects/unittestProject/data/login.xlsx").read_excel()
    return login_data

@ddt
class TestLogin(unittest.TestCase):

    # 打开浏览器
    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        self.driver.get("https://...")
        self.driver.implicitly_wait(5)

    # 关闭浏览器
    def tearDown(self) -> None:
        time.sleep(5)
        self.driver.quit()

    # 测试用例
    @data(*get_data_case())
    @unpack
    def test_login(self,**paras):
        # print(paras)
        self.driver.find_element(By.ID,"username").send_keys(paras["username"])
        self.driver.find_element(By.NAME,"password").send_keys(paras["password"])
        self.driver.find_element(By.CSS_SELECTOR,"body > div.box.login > form > div > a").click()

        try:
            result = self.driver.find_element(By.XPATH, '//*[@id="login"]/div/div[1]/em').text

        except:
            result = 'None'

        finally:
            assert result in paras["exceptValue"]


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

4.主运行方法

main.py

import unittest
import time
from HTMLTestRunner import HTMLTestRunner


suite = unittest.TestSuite()
case = unittest.defaultTestLoader.discover(start_dir='case', pattern='test_login.py')
suite.addTest(case)

# 运行测试套件,生成报告
path = time.strftime("%Y-%m-%d %H:%M:%S")
name = 'report/测试报告 {}.html'.format(path)

with open(name, 'wb') as f:
    # runner = unittest.TextTestRunner(stream=f)
    runner = HTMLTestRunner(stream=f, verbosity=2, title='测试', description=None, tester='yyy')
    runner.run(suite)

单元测试框架 unittest 基础核心内容,快速上手!

5.测试报告

report/....

自动化测试封装登录功能,软件测试,python,python,selenium,自动化
想要我这个 HTMLTestRunner 源文件可以评论或者私信我
自行查找也很容易获取~~~


总结

1.NoSuchElementsException

有可能是以下问题,具体使用方法自行查找,有很多文章,加油解决

页面未渲染完成,元素未加载 - time.sleep(3) 强制等待

存在iframe框架,需要先进入iframe再进行定位 - switch_to.frame(frame_tag)

存在新页面,仍在原来的窗口定位 - driver.swithc_to_windows()

XPATH或者定位写法确实有误...

2.AttributeError

AttributeError: type object ‘TestLogin’ has no attribute ‘test_login’
这个问题很好解决,你把光标移动到用例代码最后一行再去执行

3. 多条数据一个用例方法

以上的代码中,我用了两条数据进行测试,一个登录失败,一个登录成功;

但是我只写了一个用例方法,如果不对登录失败做些处理,程序会报错,告诉我找不到登录成功后的元素

可对于测试结果来说,登录失败找不到登录成功后的元素其实是正确的,即这条用例应该是通过的

我的处理方法是:当登录失败时给 result 一个默认值,把失败的期望结果赋值给它再去做断言

	try:
		result = self.driver.find_element(By.XPATH, '//*[@id="login"]/div/div[1]/em').text
	
	except:
		result = 'None'
	
	finally:
		assert result in paras["exceptValue"]

4.(👋👋👋)

以上就是一个简单的登录自动化实现,希望对你有帮助!

接下来的重心主要会放在接口自动化上,毕竟web自动化维护成本较高,不知道公司会不会使用😝


推荐阅读

ddt 实现自动化测试数据驱动 (unittest + selenium)

单元测试框架 unittest 基础核心内容,快速上手!

Python & openpyxl 对 Excel 文件的读写操作

到了这里,关于Python + selenium实战:自动化登录功能测试用例,入门级!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python selenium 自动化登录页面

    2024年02月10日
    浏览(37)
  • 【Selenium+python】自动化测试登录界面

    前言:已经学习selenium许久了,奈何公司的项目还在码代码中...,感觉自己学的东西快忘的差不多了,所以就找个网站练练手,顺便回顾一下UI自动化的知识,也希望跟我一样的小白有所受益。 用例1: 正确输入手机号和密码,点击登录 期望:有帮助中心字样(系统跳至首页

    2024年02月08日
    浏览(40)
  • Python利用Selenium实现自动化验证登录

    Python里面使用Selenium是一个很重要的自动化测试模块,我们可以用它写一个验证登录脚本,有了这个可以用来保存cookie信息等,下面是一个简单的demo:

    2024年02月15日
    浏览(34)
  • 软件测试——功能测试,使用Java,IDEA,Selenium进行web自动化测试

    视频地址:03-web元素定位ID_哔哩哔哩_bilibili p1.下载jdk,maven,idea p2.配置java-selenium环境正式开始: (1)创建代码: (2)第一次运行会报错:要下载东西  (3) Windows系统的输入如下:  (4)完成如下:(这个用的是Linux系统的) p3:web元素定位ID (1)先改一下之前的代码  (

    2024年02月08日
    浏览(69)
  • python+selenium进行cnblog的自动化登录测试

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

    2024年02月16日
    浏览(29)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(35)
  • Python+Selenium自动化测试项目实战

    第 1 章 自动化测试 1.1、自动化测试介绍 自动化测试就是通过自动化测试工具帮我们打开浏览器,输入网址,输入账号密码登录,及登录后的操作,总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来,把时间和精力花到更好的地方去,

    2023年04月17日
    浏览(29)
  • Python+selenium自动化测试实战项目(全面,完整,详细)

    前言 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过清明一直没有更新,今天整理一下实战项目的代码共大家学习。(注:项目是针对我们公司内部系统的测试,只能内部网络访问,外部网络无法访问) 问: 1.外部网络无法访问,代码也无法运行

    2024年02月13日
    浏览(32)
  • 【python+selenium自动化测试实战项目】全面、完整、详细

    项目名称:**公司电子零售会员系统 项目目的:实现电子零售会员系统项目自动化测试执行 项目版本:v1.0 项目目录 项目环境 本版 python 36 pip insatll selenium PyCharm 2017.2.4 Windows 10 10.0 HTMLTestRunner.py 项目框架 unittest单元测试框架 pageobject 设计模式 UI对象库思想 项目设计 1.一个模

    2024年02月06日
    浏览(32)
  • selenium+python做web端自动化测试框架实战

    最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索selenium+python自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目前已经基本完成了所以总结下编写的得失,便于以后回顾温

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包