【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

news2025/1/15 13:03:54

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db

目录

1.环境搭建

2.编写测试用例

3.运行测试用例

3.1 命令行方式

3.2 集成到CI/CD流程中

4.结论


Web自动化测试实战项目:使用Selenium和Python完成网站登录功能的自动化测试

本文将介绍如何使用Selenium和Python编写自动化测试脚本,对网站登录功能进行测试。我们将通过模拟用户在网站上输入用户名和密码,并点击登录按钮,来检验登录是否成功。

1.环境搭建

首先,我们需要安装Python和Selenium。Python可以从官方网站下载并安装,Selenium则可以通过pip命令进行安装。在安装完成Python和Selenium之后,我们还需要下载适合当前浏览器的WebDriver驱动程序,并将其添加到系统PATH中。

2.编写测试用例

接下来,我们将编写一个测试用例,在其中定义了测试步骤和期望结果。以下是一个简单的示例:

from selenium import webdriver


def test_login():
    # 启动浏览器
    driver = webdriver.Chrome()

    # 打开网站
    driver.get('http://localhost:8080')

    # 输入用户名和密码
    username = driver.find_element_by_name('username')
    password = driver.find_element_by_name('password')
    username.send_keys('testuser')
    password.send_keys('123456')

    # 点击登录按钮
    login_btn = driver.find_element_by_css_selector('.login-btn')
    login_btn.click()

    # 验证是否登录成功
    assert '欢迎您' in driver.page_source

    # 关闭浏览器
    driver.quit()

在这个测试用例中,我们首先启动了Chrome浏览器,并通过get方法打开了本地的网站。然后,我们模拟用户在网站上输入了用户名和密码,并点击了登录按钮。最后,我们使用assert语句验证了登录是否成功。

这里需要注意的是,在编写测试用例时,我们应该尽量避免硬编码。例如,可以将用户名和密码定义为变量,从外部文件或数据库中读取,以便于测试用例的复用和维护。

3.运行测试用例

完成测试用例编写之后,我们需要运行这个测试用例,以检查系统是否符合预期。这里介绍两种运行测试用例的方式。

3.1 命令行方式

可以使用pytest等测试框架来运行测试用例。例如,在命令行窗口中进入测试文件所在目录,执行以下命令:

pytest test_login.py

这将运行test_login.py文件中的所有测试用例。测试框架会自动加载测试文件,并执行其中所有以test_开头的函数。

3.2 集成到CI/CD流程中

在实际的软件开发中,我们通常会将测试用例集成到CI/CD流程中,以便于持续检查系统的健康状况。例如,在Jenkins中可以创建一个构建任务,将测试用例作为构建步骤进行执行。

4.结论

本文介绍了如何使用Selenium和Python编写自动化测试脚本,对网站登录功能进行测试。我们通过一个简单的示例,演示了测试用例编写、运行和集成的过程。希望读者可以根据这个示例,进一步学习和掌握Web自动化测试技术,为软件开发质量保证做出更大的贡献。

 自动化测试学习步骤结构图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安装配置Tomcat服务器教程 ——外网远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 转载自cpolar文章:外网访问本地Tomcat服务器【cpolar内网穿透】…

ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443)

问题: 今天在遇到了安装pytorch中的torchvision包的时候一直超时失败报错如下 ReadTimeoutError: HTTPSConnectionPool(hostfiles.pythonhosted.org, port443): Read timed out. 之前的安装的方式是: pip install --no-deps torchvision 解决办法&…

uni——模拟购物车(全选、全不选、步进器、结算等)

案例演示 案例代码 <template><pageBox ref="pagebox"><view class=

Java程序设计入门教程--案例:自由落体

程序模拟物体从10000米高空掉落后的反弹行为。 球体每落地一次&#xff0c;就会反弹至原高度的一半。按用户输入的弹跳次数&#xff0c;计算球体每次弹跳的高度。 实现过程&#xff1a; 1. 新建项目&#xff1b; 2. 接收 用户输入的弹跳次数&#xff1a; &#xff08;1&#…

通过Robotstudio修改机器人程序的具体方法和步骤

通过Robotstudio修改机器人程序的具体方法和步骤 基本步骤可参考以下内容: 用网线连接机器人和电脑,机器人一侧要插入LAN2口;机器人和电脑的IP地址要在同一个网段内;请求写入权限;修改程序—编译—应用;加载修改后的程序到机器人;保存Robotstudio程序到电脑端;只能修改…

超大规模视觉通用感知模型

超大规模视觉通用感知模型 通用感知模型简介与发展超大规模图像、文本主干网络多任务兼容解码网络 参考文献 通用感知模型简介与发展 通用感知模型是指一个模型解决不同的感知任务&#xff0c;应用于各种模态数据。 通用感知模型的发展脉络图如下&#xff0c;它由NLP发源&…

Visual Studio Code 和 GitHub Copilot

翻译自 Chris Dias 的博客 AI 这个话题&#xff0c;近期我们看到它被大家广泛地谈论&#xff0c;有些人很兴奋&#xff0c;也有些人表达了担忧。进步几乎每天都在发生&#xff0c;速度前所未有。每天有超过一百万的 Copilot 用户&#xff0c;如果你有机会尝试&#xff0c;你可…

简易英文统计和加密系统的设计实现(纯C语言实现,包含文件操作、注释多、易理解)

❤️作者主页&#xff1a;微凉秋意 &#x1f525;系列专栏&#xff1a;数据结构与课程设计 ✅作者简介&#xff1a;后端领域优质创作者&#x1f3c6;&#xff0c;CSDN内容合伙人&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3c6; 文章目录 前言部分功能、开发环境与项目结…

十二、模块化开发

一、什么是模块化&#xff1f; 到底什么是模块化、模块化开发呢&#xff1f; 事实上模块化开发最终的目的是将程序划分成一个个小的结构&#xff1b;这个结构中编写属于自己的逻辑代码&#xff0c;有自己的作用域&#xff0c;定义变量名词时不会影响到其他的结构&#xff1b;…

上海车展:油电反转,新能源车竞争白热化

还记得2009年的上海车展&#xff0c;新能源车初来乍到&#xff0c;一共才展出47辆&#xff0c;占所有展出车辆5.12%&#xff0c;今年参展车型中&#xff0c;传统燃油车型有58款&#xff0c;新能源车有76款&#xff0c;新能源车第一次超过燃油车&#xff0c;实现油电反转。 电动…

均值滤波 附带简易code

1.概念介绍  均值滤波是典型的 线性滤波算法&#xff0c;是指用当前像素点周围nxn个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点&#xff0c;可完成整幅图像的均值滤波。 2.基本原理  如图2-1&#xff0c;我们对第5行第5列的像素点进行均值滤波时…

D. Labyrinth(双端队列BFS)

Problem - D - Codeforces 你正在玩一款电脑游戏。其中一个关卡将你置于一个迷宫中&#xff0c;它由n行构成&#xff0c;每行包含m个单元格。每个单元格要么是空闲的&#xff0c;要么被障碍物占据。起始单元格位于第r行和第c列。在一步中&#xff0c;如果目标单元格没有被障碍物…

Codeforces-Round-826-Div-3-E-Sending-a-Sequence-Over-the-Network

title: Codeforces Round 826 (Div. 3) E. Sending a Sequence Over the Network date: 2023-04-18 20:04:57 categories: AlgorithmCodeforces tags:codeforces动态规划1600 E. Sending a Sequence Over the Network ​ 题目大意 给你一个长度为n的数组&#xff0c;问整个…

【Java 8 Time】Java8时区时间运用详解,2万字助你通关java.time包

目录 前言一、时区与时间1. 世界标准时&#xff1a;UTC、GMT、UT2. 地区时&#xff1a;Asia/Shanghai、UTC83. 时区&#xff1a;ZoneId、TimeZone4. 时间偏移量&#xff1a;ZoneOffset5. 时区简称&#xff1a;CTT、PRC 二、主要时间类1. 重要时间接口&#xff1a;Temporal2. 时…

测试用例覆盖不全面的解决方法

测试用例覆盖不全面的解决方法 问题分析 在测试用例设计过程中&#xff0c;容易出现思维受限或者需求盲区&#xff0c;我们不可能完全覆盖用户使用的所有场景&#xff0c;编写测试用例的时不可能把所有的场景都能想周全&#xff0c;把所有的场景下的情况都写成测试用例去模拟、…

SLAM论文速递:SLAM—— (2023)Amos-SLAM:一种基于视觉和几何的抗动态双阶段SLAM方法—5.05(1)

论文信息 题目&#xff1a; Amos-SLAM:An Anti-Dynamics Two-stage SLAM Approach Amos-SLAM:一种基于视觉和几何的抗动态双阶段SLAM方法论文地址&#xff1a; https://arxiv.org/pdf/2302.11747.pdf发表期刊&#xff1a; Computer Science > Robotics标签 xxxx 摘要 传统…

图神经网络:在KarateClub数据集上动手实现图神经网络

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 文献阅读&#xff1a;代码实操&#xff1a; 文献阅读&#xff1a; 参考文…

基于ArkUI框架开发——图片模糊处理的实现

原文&#xff1a;基于ArkUI框架开发——图片模糊处理的实现&#xff0c;点击链接查看更多技术内容。 现在市面上有很多APP&#xff0c;都或多或少对图片有模糊上的设计&#xff0c;所以&#xff0c;图片模糊效果到底怎么实现的呢&#xff1f; 首先&#xff0c;我们来了解下模糊…

面向万物智联的应用框架的思考和探索(中)

原文&#xff1a;面向万物智联的应用框架的思考和探索&#xff08;中&#xff09;&#xff0c;点击链接查看更多技术内容。 应用框架&#xff0c;是操作系统连接开发者生态&#xff0c;实现用户体验的关键基础设施。其中&#xff0c;开发效率和运行体验是永恒的诉求&#xff0c…

【路径规划】基于麻雀搜索算法的栅格法路径规划 机器人路径规划【Matlab代码#21】

文章目录 1. 原始SSA算法2. 机器人路径规划环境创建3. 路径规划模型建立4. 部分代码展示5. 仿真结果展示6. 资源获取方式 1. 原始SSA算法 2. 机器人路径规划环境创建 对机器人工作空间的进行环境建模是机器人路径规划研究的重要前提。栅格法为环境建模提供了一种简洁有效的方法…