通过Selenium实现Web自动化测试的研究

news2024/11/27 7:27:05

目录

前言:

1 自动化测试概念

1.2 自动化测试发展阶段

2 自动化测试工具Selenium简介

3 具体测试过程

4 总结


前言:

Web自动化测试是Web应用程序测试的重要组成部分,它通过模拟实际用户行为,对Web应用程序进行自动化测试并检查其是否按预期工作。目前,Selenium是最流行的Web自动化测试工具之一,它可以模拟人为用户行为,比如点击按钮、填写表单等,并且支持多种编程语言的自动化脚本编写,如Java、Python、C#等。

1 自动化测试概念

1.1 定义

自动化测试是测试过程中仅需由测试者开发测试运行脚本,不需用户参与过程即可自动执行测试程序。所开发代码可以用于单元测试、功能测试,以及集成测试,从而完成整个系统的测试工作。总之,自动化测试的过程就是用代码测试源程序,指导测试过程,代替人工测试。

1.2 自动化测试发展阶段

1.2.1 简单录制回放阶段

利用工具录制对所需测试操作,执行脚本,实现自动化回放。

1.2.2 数据驱动阶段

使用实例作测试数据,采用专用格式存储和读取,在测试过程中调用不同测试数据及相关变量。

1.2.3 关键字驱动阶段

以数据驱动为基础,在测试工具提取出改进的测试用例:将数据与脚本分离,把内部元素和外部对象分离,从而也把测试描述与具体实现方式区分。

1.2.4 模型驱动阶段

通过不同测试场景设置相应条件,每一个模型对应一个测试场景。

1.3 自动化测试框架

它就是由多个自动化测试基本模块、管理模块及统计模块等所组成的工具集合。测试框架分为二类:Selenium等提供最基础的自动化功能测试模块,通过模拟鼠标键盘,点击或操作该页面中的测试元素,验证该元素属性是否正确,判定程序正确性;Robot等可提供自动化测试执行和管理模块,不提供基础支撑,仅用于组织管理和执行那些已有的测试用例。

2 自动化测试工具Selenium简介

2.1 Selenium组成

Selenium由ThoughtWorks推出的开源测试工具,针对功能测试或验收测试中JUnit无法解决的测试问题,用户与Web系统交互时所需的回归测试、集成测试或冒烟测试。此工具支持多种浏览器,也支持各类编程语言。

它集成了WebDriver,提供支持在复杂页面中重新加载以及动态网页等不能处理的情况。最新的Selenium2.9.1由以下内容组成: IDE、Core、Remote Control以及Grid四大模块。

2.2 Selenium工作原理

Selenium具体的架构如下:

前端:Firfox、IE、Chrome平台运行的WebApp;

中间层:WebDriver;

后端:Java、Ruby、C#等客户端。

2.3 Selenium工作环境

开发环境:IDE使用Eclipse、NotePad等,开发语言可使用Java、C#;

运行环境:Selenium四大核心、Firefox等浏览器;

其它工具:部署:Ant;集成:Junit4、TestNG。

3 具体测试过程

3.1 分析系统测试需求

以邮箱——用户登录为例,需求如下:

(1)系统帐号、登录密码正确与否;

(2)系统登录后是否有跳转页面;

(3)Session过时后有否提示重新登录;

(4)登录用户相关信息的验证。

3.2 测试用例

设计测试用例:

需求描述:登录账户、密码是否正确; 前置条件:处于登录界面

基本操作 1.输入账号密码;2.点击登录按钮;

用例01,Test001/123456 登录并跳转 匹配用例

用例02,Test001/654321 提示密码错 断言失败

3.3 录制测试过程

主要步骤:

(1)在Firefox添加Selenium IDE插件;

(2)Selenium IDE的Base URL输入访问地址并点击录制;

(3)登录页面输入账号、密码,点击登录按钮,进入主面;

(4)Selenium会自动记录并通过以下参数定位网页元素并而完成脚本录制:

open /
selectFrame login_frame
type id#u Test001
type id#p pw123456
clickAndWait id#login_button

备注:

Command:执行的操作 Target:操作对象 Value:输入值;

3.4 生成测试脚本

在Selenium IDE中,通过菜单 “Export TestCase As…”,选择“Java/ JUni t 4/ WebDriver”,将IDE与Selenium2.9相结合,完成IDE向Webdriver的Java脚本转化,可以生成Junit4框架文件。

3.5 执行并分析测试结果

编辑测试脚本后,在Eclipse运行,WebDriver会自动启动Firefox,在页面账号和密码处分别自动输入用例Test001数据项,并自动点击“登录”按钮,跳转至主页面。测试结果是“登录并跳转成功”,符合预期,测试通过。修改测试用例脚本,修改密码,再次运行时测试不通过。

4 总结

本文定义了自动化测试,回顾了发展历程,简棕了Selenium构成、工作原理及环境,结合实例列出过程。尽管自动化测试针对重复性测试工作,但是测试人员主要工作都用在编写、调试以及维护测试代码,以至偏离原有目标,故实践中,应正确认识自动化测试优缺点,将手工与自动有机结合达到最佳效益。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5F7http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=hyGITtX0cD6EN96WzR_d5b1qRSZ-Dpyy&authKey=76TmCzaAQ%2BOwLn6umFFZeVxKheSwyaUVwymd%2FRvdARY6cvCSCgZ1qOSe3w%2Bsh61f&noverify=0&group_code=574737577

 

 

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

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

相关文章

chatgpt赋能python:Python拆包:提高编程效率的神器

Python拆包:提高编程效率的神器 在Python编程中,拆包(unpacking)是一项非常有用的技巧。它可以让你将一个可迭代对象(iterable)中的元素分离开来,赋值给多个变量。这个过程一般称为“解包”&am…

小白到运维工程师自学之路 第三十八集 (redis高可用集群)

一、概述 Redis高可用集群是一种分布式系统,它由多个Redis节点组成,可以提供高可用性和容错性。在Redis高可用集群中,每个节点都可以处理客户端请求,并且数据会在多个节点之间进行复制和同步,以确保数据的可靠性和一致…

Day_51-53kNN分类器

目录 Day_51:kNN分类器 一. 前言 二. 机器学习基本术语 三. kNN算法的原理 1. kNN算法的思想 2. kNN算法的具体实现过程 四. 代码实现 1. 导包 2. 参数初始化 3. 数据的导入 4. 数据的抽取 5. 对于测试集进行预测 6. 核心代码 Day_52:knn分类器&am…

LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理

LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理 通过相机视觉,以对目标物体的不同颜色进行分类,并与平行机器人一起拾取和放置物体。通过使用MATLAB Simulink模拟合适的机器人工作空间来研究使用相机的效率和机器人的准确性。机械臂以使用运动学…

OpenMMLab-AI实战营第二期——5-2. MMSegmentation代码课

文章目录 1. 自定义数据集1.0 整理数据集为特定格式1.1 持久化运行(用文件定义)1.2 运行时生效(直接运行时定义一个class)1.3 注意事项 2. 配置文件3. 运行训练和测试X. 其他语义分割数据集 视频链接:MMSegmentation代…

ThreadPoolExecutor源码

介绍 ThreadPoolExecutor 是 Java 中实现线程池的一个类,它是 ExecutorService 接口的一个实现类。线程池可以用来优化线程的使用,避免频繁地创建和销毁线程,以及限制并发线程的数量,从而提高应用程序的性能。 public class Thr…

读发布!设计与部署稳定的分布式系统(第2版)笔记06_用户

1. 系统的人类用户天生就具备进行创造性破坏的本事 1.1. 用户会消耗内存 1.2. 用户会做奇怪和随机的事情 1.2.1. fuzzing工具箱、基于属性的测试或模拟测试 1.3. 恶意用户总是存在的 1.3.1. 灾祸总会发生,坏人肯定存在 1.4. 用户会合伙对付你 2. 难伺候的用户…

【linux】opencv修改摄像头分辨率

起因 发现linux系统下调用opencv修改摄像头分辨率,一直修改不成功。 原本 正常在window下面读取摄像头数据是如下代码: # capture from web camcap cv2.VideoCapture(0)# set widthcap.set(3, 1280)# set heightcap.set(4, 720)while self._run_flag…

武职302303笔记-day01

这里写自定义目录标题 开发永和小票开发步骤1、对页面进行需求分析 使用CSS的方式 Order.html问题:html代码和css样式代码交织 idea开发后端程序使用chatGPT给我们打工QRCreate.java 开发永和小票 开发步骤 1、对页面进行需求分析 页面是很多文字组成,…

虹科分享丨如何保证我们的数据安全?|数据保护

一、数据安全 你可能已经正在寻找加密服务来帮助保护你的组织的数据,但如果你是一个不熟悉实践或管理数据的人员,"数据加密 "这个短语可能会感觉像技术术语或只是像一个模糊的概念,没有具体的解决方案。 但事实上,数据…

git、axios、模块化导出引入、promise、webpack、

GIT总结 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" git config -l 命令来查看配置信息 git init 仓库初始化 touch index.html 创建index.html文件 git add index.html 文件加入暂存区 git add -A 将全部文件…

车载以太网 - 网络层 - IPv4/IPv6

目录 一、网络层基本信息介绍 1、网络协议适用范围 2、IPv4和IPv6的地址 3、Ethernet Frames 的类型 二、两种类型IP地址的定义: ECU通信的几种方式 路由器(Router)和IP 地址的概念 路由实例介绍 三、IPv4地址介绍 地址分类: 各类型IP可支持的最大网络数…

C语言实现移位密码

一.移位密码 移位密码(Caesar Cipher)也叫凯撒密码是一种简单的加密技术,它通过将明文中的每个字母按照指定的位数进行移位,从而生成密文。例如,在一个"左移3位"的移位密码中,文中的每个字母都向左移动3个位置&#xff…

7.2 SpringBoot实现上传图片API + url映射本地路径registry.addResourceHandler

文章目录 前言一、url映射本地路径二、上传图片API2.1 接口UploadService2.2 实现类UploadServiceImpl2.3 上传图片Controller 三、测试最后 前言 在图书借阅系统里,有很多图片需要前端展示,这些图片大都是由用户上传,保存在服务端&#xff…

chatgpt赋能python:Python拆数程序:如何快速分解数字?

Python拆数程序:如何快速分解数字? 在计算机编程中,数字拆分是一个非常重要的概念。拆分数字可以让我们更好地理解数字格式,进行计算和分析。而Python作为一种功能强大的编程语言,提供了许多高效的工具来帮助我们快速…

【备战秋招】每日一题:华东师范大学保研机试-2022-罗马数字

为了更好的阅读体检,可以查看我的算法学习博客罗马数字 题目内容 罗马数字是古罗马使用的记数系统,现今仍很常见。 罗马数字有七个基本符号: I,V,X,L,C,D,M。 罗马数字IVXLCDM对应的阿拉伯数字1510501005001000 需要注意的是罗马数字与十进位数字的…

chatgpt赋能python:Python拆分语句,让数据处理更有效率

Python 拆分语句,让数据处理更有效率 Python是一种强大的编程语言,不仅支持各种应用开发,而且非常适合数据处理。Python的易用性和灵活性使其成为了数据科学家和工程师首选的编程语言之一。Python的字符串拆分功能能够轻松处理数据的分割和组…

从C语言到C++_20(仿函数+优先级队列priority_queue的模拟实现+反向迭代器)

目录 1. priority_queue的模拟实现 1.1 未完全的priority_queue 1.2 迭代器区间构造和无参构造 1.3 仿函数的介绍和使用 1.4 完整priority_queue代码: 1.5 相关笔试选择题 答案: 2. 反向迭代器 2.1 反向迭代器的普通实现 reverse_iterator.h&a…

性能测试基础知识(一)性能测试策略

性能测试策略 一、什么是性能测试?二、性能测试的目的三、性能测试策略1、基准测试2、并发测试3、负载测试4、压力测试5、其他测试 一、什么是性能测试? 性能测试是在一定的负载1条件下,系统的响应时间等特性是否满足特定的性能需求。需要有…

软考A计划-系统集成项目管理工程师-信息化知识(二)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…