selenium自动化测试_Selenium测试可实现有效的测试自动化

selenium自动化测试

尽管移动应用程序的市场份额有大幅增长,但网络应用程序仍然具有大量的用户基础。 在部署之前,企业正在关注Web应用程序的质量。 这是测试发挥重要作用的地方。 与某些可以自动化的功能测试不同,UI测试仍然大部分是手动过程。 但是将测试自动化可以节省时间和精力是明智的。 在自动化方面,Selenium测试是第一件事,因为它是世界上最受欢迎的测试自动化工具。 因此,让我们进一步了解Selenium测试。

什么是Selenium测试

Selenium测试工具是开源的,它使用户能够推动与页面的交互并跨各种平台测试应用程序。 它允许用户从喜欢的语言(例如Java,JavaScript,C#,PHP,Python等)控制浏览器。Selenium具有许多工具和API,可在IE,Chrome,Firefox,Safari,Opera,Opera等浏览器上自动执行HTML JavaScript应用上的用户交互等

Selenium Framework是一种代码结构,有助于简化和重用代码。 如果没有框架,我们会将代码和数据放置在同一位置,该位置既不可重用,也不可读。 Selenium自动化框架有利于提高可移植性,增加代码重用性,提高代码可读性,降低脚本维护成本等。

什么是Selenium Web驱动程序

Selenium WebDriver通过客户端API接受命令并将其发送到浏览器。 Selenium WebDriver是特定于浏览器的驱动程序,可帮助访问和启动不同的浏览器,例如Chrome,Firefox,IE等。WebDriver提供了一个界面来创建和运行自动化脚本,并且每个浏览器都有不同的驱动程序来运行测试。 不同的驱动程序是IE驱动程序,Firefox驱动程序,Safari驱动程序,Chrome驱动程序等。

引入Selenium WebDriver是为了消除Selenium RC的局限性,后者提供了对网页的增强支持,其中页面上的元素无需重新加载即可更改。 许多浏览器都支持Selenium WebDriver,它使用每个浏览器的本机支持进行自动化测试。 支持这些功能,并根据所使用的浏览器进行直接调用。

WebDriver项目取决于编程语言以及开发环境。 Selenium支持多种语言,可以使用多种编程语言来设置项目。 Selenium在npm上提供JavaScript绑定。 可以使用Maven设置Java项目,并且还将下载Java绑定和依赖项以创建项目。

从命令行运行pip install selenium以在python环境中添加Selenium。 C#绑定是一组签名dll和依赖项dll的一部分。 您可以通过ChibimagicFacebook等第三方获得PHP绑定。 要将Selenium添加到Ruby环境中,请从命令行运行gem install selenium Web驱动程序。 设置环境后,SeleniumWeb驱动程序将像普通库一样运行。 SeleniumWeb驱动程序可以自我维持,因为在使用它之前不需要运行任何安装程序或进程。

编写Selenium自动化脚本

让我们看看如何从脚本启动浏览器。 确保您已经下载了Selenium罐文件和第三方驱动程序。 要启动浏览器,您需要做的第一件事就是为Web驱动程序创建一个对象。 然后使用get方法启动新的浏览器会话,并将其定向到参数中指定的URL。

现在,您需要系统指向浏览器的已下载exe文件的位置。 您可以使用System.setProperty来实现。 然后在键中提供浏览器驱动程序,并在值中提供浏览器exe文件位置的路径。 这里System是一个内置类,setProperty是访问浏览器驱动程序的方法。

设置路径后,您需要为WebDriver类创建一个对象。 将鼠标悬停在突出显示的值上,然后从列表中导入,因为我们已经在项目中添加了jar文件。

还有另外两种方法,driver.close()可用于关闭活动浏览器窗口,而driver.quit()可用于关闭浏览器以及所有关联的窗口。 要获取网页中任何元素的ID(例如按钮,图像,徽标,文本框等),只需右键单击并选择检查。 您将从中获取源代码,可以在其中复制要在脚本中使用的ID。 您还可以为脚本使用任何其他元素定位器。

现在提到驱动程序实例,然后从WebDriver类中选择findElement方法。 然后选择ID定位器,并提及我们从源代码复制的值。 使用sendKeys将某些值传递给特定的Web元素。

在Selenium IDE中运行测试用例很容易。 这是一个Firefox插件,可以帮助记录测试并转换为代码。 运行测试用例有多个选项,包括“运行”按钮以运行显示的测试用例。

“全部运行”按钮用于运行当前已加载的测试套件中的测试用例。 “暂停”按钮允许暂停和重启正在运行的测试用例。 有一个“速度”按钮可以保持测试用例的运行速度。 使用“记录”按钮,您可以记录在网络浏览器中执行的操作。

您还可以在Selenium IDE中使用基本URL,通过提及相对URL作为打开测试用例的参数来在多个域中运行测试用例。

该表以可读格式显示命令及其参数。 而命令目标和值字段显示当前选择的命令及其参数。 该日志将向您显示任何类型的错误消息和信息消息,并且在参考中,您将找到当前使用的selenium命令的文档。 您可以使用简单HTML文件并定义测试列表以定义测试套件。 文件中的每一行都应定义要添加到套件中的测试的路径。 您将找到许多方法来使用这些工具来改善开发和测试过程。

总结一下

企业一直在寻求优化测试过程,而自动化是做到这一点的一种方法。 尽管使用有效的工具进行自动化非常重要,并且Selenium自动化测试是开源和易于使用的,所以它是最佳选择。

翻译自: https://www.javacodegeeks.com/2019/09/selenium-testing-for-effective-test-automation.html

selenium自动化测试

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

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

相关文章

画时序图 visual_时序图的初步了解

1、划清边界,识别交互的语境所谓划清边界,就是要界定好自己所要画的时序图的范围,“学生在教务系统中查询其课程的成绩”就是所要绘制的时序图的交互内容,不用往上延伸到用户登录,也不要往下延伸到下载成绩单。识别交互…

java 初始化块

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在分享初始化块 or 静态初始化块的调用过程; 【1】初始化块相关 1.1)前面讲过了 两种初始化数据域的方法: 在构造器中设置值 在声明中赋值&#xff…

简短介绍_中秋节的来历由来简短20字30字 中秋节的起源50字100字简介

中秋节是我国的传统佳节。按照史籍的记实,“中秋”一词最早呈此刻《周礼》一书中。小编整理了中秋节来历的简单介绍,既有二三十字的简要版,也有100字左右的介绍,让我们一起了解中秋节的起源吧。中秋节的来历由来简短20字中秋节起源…

java中的lombok_如何在Java中使用Lombok删除样板设置器吸气剂

java中的lombok你好朋友, 一次又一次反对Java的观点之一是,我们必须写很多样板 我们简单的POJO类的setter和getter形式的代码,不必要地增加了 我们代码的长度。 为了解决这个问题,有一个名为Project Lombok的开源项目可以解决这…

super 和 this 关键字的比较+调用构造器(this)+动态绑定

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在加深对 super 和 this关键字 的用法比较; 0.2) 最后还补充了 多态和动态绑定 的定义 以及对动态绑定进行了详细分析,这两个定义给的非常棒&#xf…

修改表格字体颜色_word排版应用:如何创建文本样式和表格样式

样式,大家应该不陌生,在Word中是一个非常强大的功能,运用得好,可以节省很多时间和精力。但如果你不会用,关键时刻可以把你急哭了!在前面的“Word样式,简单又实用!”和“Word样式也有…

java流式传输对象_Java性能:面向教学与流式传输

java流式传输对象在for循环中向上或向下计数是最有效的迭代方式吗? 有时答案既不可行。 阅读这篇文章,了解不同迭代品种的影响。 迭代性能 关于如何以高性能进行迭代有很多观点。 Java中的传统迭代方式是一个for循环,该循环从零开始&#xf…

vue框架项目部署到服务器_在浏览器中在线尝试无服务器框架项目!

vue框架项目部署到服务器无服务器框架是无服务器工具的一致领导者。 但是,没有简单的方法可以在线试用无服务器框架项目。 您确实需要一个体面的开发人员设置,并且需要一些工作来设置sls , npm等。 确切地说,您确实做到了 –直到…

用python连接数据库_用Python连接MySQL

MySQL是当下最流行的关系型数据库管理系统之一,在用Python爬取网络数据的过程中也经常需要用到MySQL,Python中pymysql库提供了连接MySQL的接口,为Python连接和操作MySQL提供了便利.一,安装pymysql库直接使用pip工具进行安装:pip install pymysql二,连接mysql首先导入第三方库,然…

树的预备知识

【0】README 0.1) 本文总结于 数据结构与算法分析,旨在整理出 树的相关术语和概念(哥子始终记不住树的高度和深度,记着记着就混淆了,哎,所以分享出来); 【1】树相关 1.1&#xff…

arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino

产品介绍:蓝牙4.0模块是专为智能无线数据传输而打造的。该模块遵循BT2.1EDR/3.0/4.0(BLE)蓝牙规范,支持SPP 蓝牙串口协议等。本模块集成了MCU 和蓝牙芯片,支持UART、SPI、I2C、I2S 等接口,包含4 个PWM 端口和6 个12bit ADC 通道&a…

后台审核管理 ergo_Kogito,ergo规则—第2部分:规则的全面执行模型

后台审核管理 ergo这是第二后 一系列更新的Kogito主动性和我们的努力,使Drools的云。 在本文中,我们将深入研究规则单元的详细信息,并向您展示为什么我们对它们感到兴奋。 规则的全包执行模型 如果您一直在仔细检查Drools手册,以…

不相交集ADT(联机算法 + 脱机算法)

【0】README 0.1)本文总结于 数据结构与算法分析, 旨在分享 不相交集ADT的相关概念; 0.2) 不相交集ADT 的知识涉及到: 等价关系、动态等价关系、不相交集ADT相关操作及其数据结构 ,还有我们最后分享的 不…

win7无法连接打印机拒绝访问_Win7系统”windows无法连接到打印机拒绝访问“怎么办?通过创建local port端口连接来搞定...

随着电脑的使用率越来越高,我们有时候可能会遇到Win7系统”windows无法连接到打印机拒绝访问“的问题,要怎么处理呢?详细解决方法如下:故障现象:按照XP的方式添加打印机,总是会出现“windows无法连接到打印…

spring boot测试_测试Spring Boot有条件的合理方式

spring boot测试如果您或多或少有经验的Spring Boot用户,那么很幸运,在某些时候您可能需要遇到必须有条件地注入特定bean或配置的情况 。 它的机制是很好理解的 ,但有时这样的测试条件下(以及它们的组合)可能会导致混乱…

不相交集的求并算法(按集合大小求并+按高度求并)

【0】README 0.1)本文总结于 数据结构与算法分析, 但源代码均为原创,旨在实现 不相交集ADT的两个操作:合并集合union查找集合find; 0.2) 不相交集ADT 的 Introduction , 参见 http://blog.csd…

及时复盘的好处_该如何复盘 先来说说复盘的好处: 复盘的好处简直太多了!就像你学习一样有一个总结的过程,复盘的最直接好处就是增强你的“股感”!在股市... - 雪球...

来源:雪球App,作者: 孜孜金融,(https://xueqiu.com/3493013654/135651359)先来说说复盘的好处:复盘的好处简直太多了!就像你学习一样有一个总结的过程,复盘的最直接好处就是增强你的“股感”&am…

posman mocks_使用Mocks进行需求驱动的软件开发

posman mocksjmock作者撰写的有关模拟框架的优秀论文 。 本文写于18年前的2004年,但其中有许多构建可维护软件系统的技巧。 在这篇文章中,我将重点介绍本文中的关键思想,但建议您阅读本文以获取有关模拟和编程实践的重要思想。 模拟对象是测…

不相交集合求并的路径压缩

【0】README 0.1)本文总结于 数据结构与算法分析, 源代码均为原创, 旨在实现 对不相交集合的路径压缩操作; 0.2)对求并后的集合进行路径压缩,目的是降低集合(合并树)的深度&#x…

python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...

首先介绍几个概念:1、#所谓的静态方法就是这个方法任何类都可以调用,程序一加载就存在的方法2、所谓的类方法就是这个类一加载就存在的方法,不用实例化这个类就已经存在的方法3、所谓的元类就是创建类的类元类: type我们知道对象是…