从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

news2024/12/23 10:08:43

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语句验证了登录是否成功。

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

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

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/1321983.html

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

相关文章

JavaWeb编程语言—登录校验

一、前言&简介 前言:小编的上一篇文章“JavaWeb编程语言—登录功能实现”,介绍了如何通过Java代码实现通过接收前端传来的账号、密码信息来登录后端服务器,但是没有实现登录校验功能,这代表着用户不需要登录也能直接访问服务器…

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。 工作原…

技术分享-Jenkins

持续集成及Jenkins介绍 软件开发生命周期叫SDLC(Software Development Life Cycle),集合了计划、开发、测试、部署过程。 在平常的开发过程中, 需要频繁地(一天多次)将代码集成到主干,这个叫持…

电子烟单片机方案开发,32位单片机PY32F030电子烟解决方案

电子烟是一种低压的微电子雾化设备。可以通过加热液体产生雾状物质,供用户吸入使用的新型电子产品。它是由微控制器(MCU)、超声波雾化发生器、充电管理IC、锂离子电池、发热棒等器件构成,主要用于替代传统香烟和戒烟,与…

一文读懂什么是智能工厂?

引言 在当今快速变革的制造业中,智能工厂如一盏明灯,照亮着未来生产的道路。它们不仅代表着技术的进步,更是制造业向前迈进的里程碑。智能工厂利用先进的技术和创新方法,将传统工厂转化为高度自动化、数字化和智能化的生产中心。…

13英寸MacBook Pro停产后 Touch Bar功能被废弃

新款M3 MacBook Pro的发布标志着苹果13英寸MacBook Pro正式停产。这款13英寸MacBook Pro是最后一款搭载Touch Bar的苹果笔记本,这意味着苹果已经放弃了使用Touch Bar。 Touch Bar是一块OLED触控显示屏,位于MacBook Pro键盘的顶部。尽管苹果对它抱有很高的…

MyBatis的查询方法!!!

准备工作:1.创建一个maven工程,然后将pojo类导入到项目中去。 2.导入依赖到pom.xml文件中 3.在resources中创建log4j.properites和mybatis-config.xml 4.创建UserMapper接口和UserMapper.xml文件 5.创建测试类MyBatisTest 1.创建Maven工程,还…

蓝桥杯嵌入式——串口

CUBE里配置成异步模式,设置波特率,打开中断(先配置LCD再配置串口): 串口发送 main.c #include "string.h" char temp[20]; sprintf(temp,"Hello World\r\n"); HAL_UART_Transmit(&huart1,(…

绝地求生是国际服吗?

绝地求生(PlayerUnknowns Battlegrounds,简称PUBG)是一款多人在线的生存竞技类游戏,由韩国的蓝洞公司开发和发行。该游戏于2017年正式发布,以其创新的游戏模式和激烈的战斗场景迅速走红全球,并成为全球最具…

魔众文库系统v5.8.0版本发布:水印、分类与移动端升级,打造更高效文档管理体验

魔众文库系统迎来了全新的v5.8.0版本更新!此次更新不仅对水印功能进行了升级,还新增了辅助分类样式,同时优化了移动端体验。让我们一起来看看这次更新的亮点吧! 一、水印功能全新升级 在v5.8.0版本中,魔众文库系统的…

Java实现一个在windows环境下的文件搜索引擎

以下是一个简单的Java实现的Windows文件搜索引擎的示例代码: import java.io.File; import java.util.ArrayList; import java.util.List;public class FileSearchEngine {public static void main(String[] args) {String searchDirectory "C:/"; // …

element plus 日期范围 自定义内容

问题: 按照官网上的自定义内容示例,修改日期选择器没有问题,如果修改日期范围选择器,修改后会丢失日期范围选择时的样式。 解决: 从F12中不难看出日期范围的选择样式来自于.el-date-table-cell 而示例中写的是.cell&…

23--数据结构简述

常见的数据结构 数据存储的常用结构有:栈、队列、数组、链表和红黑树。 1、栈 特点:先进后出 2、队列 特点:先进先出 3、数组 数组特点:查询快 , 增删慢 整形数组: 对象数组: 4、链表 链…

案例分享|企业为什么要选择数字化转型?

数字化在现代社会中扮演着重要的角色,成为企业转型的必由之路。随着科技的发展和信息化的进程,越来越多的企业开始拥抱数字化转型,以应对市场的变化和竞争的压力。数字化带来了诸多好处,不仅提高了企业的效率和生产力,…

阿里云登录镜像仓库报错: Error response from daemon: Get https://

阿里云登录镜像仓库报错: Error response from daemon: Get https:// 1. 故障现象 开发反应自用笔记本连接镜像仓库是正常的,但通过服务器连接镜像仓库一直失败. 报错信息如下: Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthoriz…

力扣刷题记录(16)LeetCode:62、63、343、96

目录 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树 总结 这题比较简单,直接声明一个二维数组来保存到达该点有几种路径。到达当前点的方法由当前点的左边格子和右边格子决定。 class Solution { public:int uniquePaths(int m, int n)…

美国联邦机动车安全标准-FMVSS

FMVSS标准介绍: FMVSS是美国《联邦机动车安全标准》,由美国运输部下属的国家公路交通安全管理局(简称NHTSA)具体负责制定并实施。是美国联邦政府针对机动车制定的安全标准,旨在提高机动车的安全性能,减少交通事故中的人员伤亡。F…

构建智慧储能物联网,4G工业路由器远程监测在线管理

物联网技术的发展为智慧储能管理带来了革命性的变化。其中,4G工业路由器IR5000通过丰富的连接能力如串口RS485/232或网口的方式,实现了与储能现场各设备的连接,包括电表、电能检测器、防孤岛装置、BMS电池管理系统、监控服务器、储能控制器、…

万户OA text2Html接口存在任意文件读取漏洞

文章目录 产品简介漏洞概述指纹识别漏洞利用修复建议 产品简介 ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网…

react基于antd二次封装spin组件

目录 react基于antd二次封装spin组件组件使用组件效果 react基于antd二次封装spin组件 组件 import { Spin } from antd; import propTypes from "prop-types"; import React from react; import styleId from "styled-components"; // 使用 父div必须加…