自动化测试

一分钟了解自动化测试 ## 引子 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接来下用通俗的方式来介绍自动化测试…… 本文共有2410字,阅读需要大约一分钟。 首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如: 了解 selenium、ap... 阅读详情

执行自动化测试中的等待方式

1.强制等待

    void test04() throws InterruptedException {
         createDriver();
         webDriver.get("https://www.bilibili.com/");
         Thread.sleep(3000);
         webDriver.quit();
    }

利用Thread类中的方法来进行等待,主要用于调试,在真实的自动化测试中不常用到。

优点:代码简单,容易编写和理解,直接阻塞程序。

缺点:大大增加了自动化测试的时间

2.隐式等待

webDriver.manage().timeouts().implicitlyWait();

属于智能等待的一种,它可以在查找元素时,规定时间内一直查找元素,如果在时间内找到元素则继续执行代码,如果没有找到元素则报错。

其中,需要用到implicitlyWait()这个方法,参数使用Duration类中的方法,如下图。

同时隐式等待的作用域是所有脚本的元素,只要你的对象没有被释放掉,也就是执行webDriver.quit();它就会一直在查找元素的时候生效。所以从你写下隐式等待后的代码,只要涉及到查找元素的操作,隐式等待都会生效,缺点也很明显只能作用于查找元素的时候。

3.显示等待

显示等待它也是一种智能等待,它与隐式等待不同的是,隐式等待只能在查找元素的时候起作用,但是显示等待只要在规定时间内满足操作,代码就会继续执行。

如上图所示,需要用到WebDriverWait这个类,参数分别是webDriver这个驱动对象和等待多少时间的方法。然后需要用到until这个方法。里面的参数如下图所示需要用到ExpectedConditions类,也就是说显示等待能够作用的操作只能是ExpectedConditions类中的方法。

例1:

    void test06() {
         createDriver();
         WebDriverWait wait = new WebDriverWait(webDriver,Duration.ofSeconds(3));
         wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#su")));
         webDriver.findElement(By.cssSelector("#su")).click();
         webDriver.quit();
    }

ExpectedConditions.elementToBeClickable();判断元素是否能够点击。

例2:

         WebDriverWait wait = new WebDriverWait(webDriver,Duration.ofSeconds(3));
         wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#kw")));
         webDriver.findElement(By.cssSelector("#kw")).sendKeys("陈赫");
         webDriver.quit();

ExpectedConditions.presenceOfElementLocated();判断页面中该元素是否存在。

例3:

    void test07() {
         createDriver();
         WebDriverWait wait = new WebDriverWait(webDriver,Duration.ofSeconds(3));
         wait.until(ExpectedConditions.textToBe(By.cssSelector("#s-top-left > a:nth-child(1)"),"新闻1"));
         webDriver.quit();
    }

ExpectedConditions.textToBe();查找文本信息是否匹配,这里是精准匹配,只要预期和查找到的文本信息不一样就会报错。

Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element found by By.cssSelector: #s-top-left > a:nth-child(1) to have text "新闻1". Current text: "新闻" (tried for 3 second(s) with 500 milliseconds interval)
Build info: version: '4.13.0', revision: 'ba948ece5b*'

显示条件的缺点是代码复杂,并且只作用在当前的条件下。

自动化测试策略?如何开展自动化测试? 功能测试自动化要点 1 什么时候开始使用自动化测试? 开始之前,要考虑5点 1.1 功能测试自动化类似软件开发过程 录制,回放是不能满足自动化测试的需求的,所以要测试人员掌握开发知识,和编程技巧。 1.2 功能自动化测试是个长期的过程 首先我们不能再短时间内有很多的测试成果,找到测试的BUG,自动化测试只有在长期的多次运行后才能体现出他的价值和作用。 其次开发出来的... 阅读详情

相关推荐

【Python自动化测试】——自动化测试基础

Python自动化测试——自动化测试基础

Python全栈系列 1753

(Java)WebDriver的元素等待实现

WebDriver提供了显式等待方法,专门针对某个元素进行等待判断。WebDriverWait类:是由WebDirver提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

m0_66802473的博客 1343

Python自动化测试

自动化测试是指使用自动化工具或脚本来执行测试用例,验证软件系统是否满足预期功能和性能要求。Python 因其简洁的语法、丰富的库和强大的脚本编写能力,在自动化测试领域得到了广泛应用。它可以用于单元测试、集成测试、接口测试、UI 测试等多个层面。

shangzhiqi的博客 1720

java使用selenium自动化WebDriver等待

显式等待(Explicit Wait):使用WebDriverWait类来实现,可以根据特定条件等待元素出现、可见、可点击等。方法来设置等待的超时时间,然后在查找元素时会等待指定的时间,如果在超时时间内找到了元素,则继续执行下一行代码,否则抛出。隐式等待适用于整个WebDriver会话的生命周期,只需要设置一次,然后在之后的查找元素中会自动等待指定的时间。显式等待和隐式等待是WebDriver中两种常用的等待方式,它们都可以用来等待特定的条件满足后再继续执行代码。

weixin_43830876的博客 1906

什么是自动化测试

什么是自动化测试 自动化测试是现代软件开发的必备环节和基本要求。本文通过手工测试和自动化测试的比较,介绍了自动化测试的基本概念和优点。 一、现在的手工测试方式 我们一般采用的的测试方式,是一种手工的方式。当你写完了一些代码,完成了一个功能,会把程序运行起来,看看程序运行的结果是否和需求一致。如果不一致,则检查代码,找出问题,进行修改。如果一致,则测试通过,功能开发完毕。这是我们常规的测试方式。...

漫天秋风的专栏 3221

自动化测试分类

测试管理工具 1.记录和分析需求 2.编写测试用例,标记已经执行过的 6.自动统计和分析测试报告 禅道 禅道是一款项目管理工具,可以管理整个软件开发的流程。(管理整个软件开发的生命周期) 需求分析——计划——设计——开发——测试——运行维护 ...

m0_62382927的博客 1995

【WebDriver】WebDriverWait 用法代码

上面的代码通过判断元素是否可点击的方法来判断元素是否处于可点击状态,中间添加了 10 秒的等待时间,在 10 秒之内每隔 0.5 秒查找一次元素,如果找到了这个元素,就继续向下执行,如果没找到就抛出 TimeoutException 异常信息。显式等待可以在某个元素上灵活的添加等待时长,尤其是文件上传,或者资源文件下载的场景中,可以添加显式等待,提高脚本的稳定性...

m0_71639532的博客 4985

自动化测试 (二) Web自动化测试原理

目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等操作,实现Web自动化测试。其实这些工具的原理都一样,都是通过调用IE COM接口和HTML DOM 对IE浏览器以及WEB测试对象的操作。

A18285759691的博客 1065

Selenium:三种等待

UI自动化测试,大多都是通过定位页面元素来模拟实际的生产场景操作。但在编写自动化测试脚本中,经常出现元素定位不到的情况,究其原因,无非两种情况:1、有frame;2、没有设置等待。 因为代码运行速度和浏览器加载渲染速度,不是一个量级,所以导致了这种情况发生。webdriver提供了3种类型的等待:显式等待、隐式等待、强制等待。 1、显示等待 定义:等待某个条件成立时继续执行,否则在达到最大时...

SUPERIT1的博客 359

基于FPGA的DDS信号发生器

之前的博客讲到了DDS的基本原理,现在用Verilog代码实现DDS,能够产生四种波形,方波,三角波,正弦波,锯齿波,用按键来控制频率和选择波形。其中按键消抖模块来自小梅哥的FPGA自学笔记设计与验证这本书。 module DDS_Module( Clk, Rst_n, EN, Fword, Key1, Pword, DA_Clk, DA_Data ); input Clk...

qq_43534451的博客 9949

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

COT思维链的出现,为AI的发展开辟了一条新的道路。它让AI学会了像人类一样思考,将复杂问题分解成简单的步骤,并逐步推理出最终答案。希望我的引导会对你产生启发。

智兔唯新的博客 9002

5-Selenium WebDriver三种等待--隐式等待-显式等待和流畅等待

在selenium中,Waits在执行测试中扮演重要角色。在本教程中,您将学习Selenium中“隐式”和“显式”等待的各个方面。 在Selenium中为什么需要等待? 在现在很多软件产品为了加强前端的效果,采取了大量的AJAX、Javascript 和Jquery技术,很多窗体内的数据,需要等待一会,才能加载完数据,才能出现一些元素,driver才能操作这些元素做一些事情。 还有就是我们做...

软测小生 4695

ThingsBoard入门实战(二):ThingsBoard 设备接入

文章目录ThingsBoard 设备接入一、设备配置/设备类型二、设备三、设备接入HTTPCOAPMQTT四、下一步 ThingsBoard 设备接入 设备接入并不一定需要真正的设备,我们可以通过程序。或者命令来模拟设备,向平台发送信息。 这节我们先为用户分配一个设备,然后通过模拟设备命令更新设备的状态(遥测值)。 一、设备配置/设备类型 添加一个叫"路灯"的设备配置。 设备配置听起来比较抽象,可以认为是设备类型或者是设备类型的配置。实际上,ThingsBoard 中很多时候让选择设备类型,就是选的这个。

AIGC搞起 1万+

【自动化测试】开展自动化测试的过程

文章目录1)自动化测试需求分析1.1 如何确定系统是否适合做自动化测试?周期较长:稳定系统:脚本可复用:*被测系统适合怎样的自动化测试?2)调研测试工具、测试框架2.1 框架的选择2.1.1 TestNG主要特点:TestNG的使用方法:2.1.2 unittest2.1.3 pytest2.1.4 Robot Framework特点:2.1.5 框架对比2.2 工具的选择2.2.1 UFT(QTP)特点:测试流程:2.2.2 Selenium它的优势:它的组成:Selenium IDE:Selenium

黑黑白白君的博客 1万+

手把手教你用Python实现ITRS与GCRS坐标转换(附完整代码)

本文详细介绍了如何使用Python的Astropy库实现ITRS与GCRS坐标转换。文章从环境配置、坐标对象构建入手,深入解析了transform_to方法背后的转换矩阵与地球定向参数管理,并通过卫星地面轨迹计算实战案例,帮助开发者掌握高精度空间坐标转换的核心技术与工程实践。

weixin_28335283的博客 79

Motoman机器人离线编程——Motocom32开发简介

欢迎关注Jungle的Motoman机器人离线编程专栏系列文章: Motoman机器人离线编程——Motocom32开发简介 Motoman机器人离线编程——Visio Studio环境配置 Motoman机器人离线编程——Motocom32库函数的使用与封装 Motoman机器人离线编程——Motocom32参考文献及注意事项 Motoman机器人离线编程——MotocomES介绍 ...

冯Jungle的个人博客 8713

什么是自动化测试?为什么要做自动化测试?如何学习自动化测试?

自动化测试是指使用软件工具和脚本来执行测试任务的过程。它可以自动化执行测试用例、生成测试报告和进行结果分析。自动化测试可以减少人工测试的工作量,并提高测试的效率和准确性。它在软件开发过程中起到了重要的作用,可以帮助开发团队快速发现和修复软件中的缺陷,确保软件质量和稳定性。

5593

OpenGL ES 3.0 开发(一):绘制一个三角形

该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 O...

字节流动 8万+

自动化测试的详细介绍

关于自动化测试的概念介绍,我将从以下十个点来介绍! 1.什么是自动化测试 2.常见测自动化测试工具 3.自动化工具和自动化框架的区别 4.自动化测试的适用对象 5.自动化测试方法 6.UI自动化 7.接口自动化 8.如何实施自动化 9.自动化测试的优势 10.自动化实施失败的原因 一、什么是自动化测试? 自动化测试是指,软件测试的自动化,在预设状态下运行应用程序或者系统,...

cherrydreamsover的博客 9667

13《CAN总线五种错误类型,故障判定全解析》

CAN总线规定,发送节点在发送完EOF字段后,会留出一个ACK Slot(应答槽)。这个槽里,发送节点自己会输出隐性电平(逻辑1),然后“期待”至少有一个其他节点在这个槽里把它拉成显性电平(逻辑0)。如果这个槽结束时仍然是隐性电平,发送节点就判定:刚才那帧报文,没有任何一个节点成功接收——这就是应答错误。简单说,就是“我喊了一嗓子,却没人应声”。

2401_88858637的博客 264

【VoxCPM2】在Windows上从零搭建VoxCPM2 语音生成和语音克隆AI算法

建议你了解清楚VoxCPM2,再来考虑是否需要自己在本地搭建。

AnChenliang_1002的博客 753

【自动化测试】自动化测试的价值和误区以及如何高效实用地落地自动化测试

总之,自动化测试是现代软件开发中不可或缺的一部分,它有助于提高软件开发的效率、质量和可靠性。然而,要充分发挥自动化测试的价值,需要合理规划、正确实施,并持续维护和优化自动化测试套件避免这些误区,可以更有效地实施自动化测试,提高软件质量和开发效率因此,自动化是一个复杂的工程实践,它结合了软件开发、测试设计、过程管理、数据分析等多个方面。它要求参与者具备跨领域的知识和技能,而不仅仅是简单的操作能力通过上述步骤,可以更高效实用地落地自动化测试,从而提升软件质量和开发效率。

ya的博客 1752

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: mysql中的事务
下一篇: 冒泡排序以及优化
change_topic
博客等级 码龄4年 97粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值