Web自动化测试——常见问题篇
文章目录
- 一、什么是自动化测试
- 二、为啥进行自动化测试(优点)
- 三、Webdriver 的工作原理
- 四、显示等待和隐式等待的区别
- 五、什么样的项目适合做自动化
- 六、自动化测试的流程
- 七、如何分析生成的自动化测试报告
一、什么是自动化测试
所谓的自动化测试
就是使用自动化工具来编写和执行测试用例,执行自动化测试套件,验证程序功能,就不需要人工的参与。
自动化测试工具可以访问测试数据,控制测试的执行并将实际结果与预期结果进行比较,从而能够生成被测系统详细的测试报告
二、为啥进行自动化测试(优点)
自动化测试能够替代一部分的手工测试
,自动化测试能够提高测试效率
。
随着功能的增加,版本越来越多,版本回归的压力也越来越大,所以仅仅通过人工测试来回归所有的版本肯定是不现实的。自动化脚本可以进行复用
,所以我们可以借助自动化来进行回归
。
自动化测试还完成对手工测试来说比较有难度的测试
(比如精准计时),以及一些比较繁琐的测试
。机器的执行是更可靠的,减少人为错误
三、Webdriver 的工作原理
自动化脚本代码运行后,每个 selenium 命令,比如点击、输入等等都会创建一个 HTTP 请求并发送给服务器端,这里的服务器端指的就是Webdriver浏览器驱动。
服务器端接收请求,把请求进行解析,就是根据协议规则定义这些 selenium 命令对应的浏览器具体操作,浏览器执行这些操作
执行好后,浏览器将执行状态返回给驱动,驱动在将状态信息返回到自动化脚本,最后就可以看出来结果对不对,是否符合预期
就相当于乘客乘坐出租车,乘客的指令就是脚本,司机就是 Webdriver,听从乘客的指令。来驱动出租车到达目的地,出租车就是浏览器
四、显示等待和隐式等待的区别
显示等待:
显示等待是将方法封装在 WebDriverWait 类中的,在使用显示等待指定元素时,如果能够定位到元素就直接返回该元素,不再继续等待。如果不能够定位到该元素,那么就会轮询的定位目标元素,如果超过了指定的显示等待时间还没有等到目标元素,就会抛出异常(TimeoutException
)
隐式等待:
隐式等待,就是在创建driver时,直接通过 driver 进行调用,设置全局元素等待超时时间,这个时间将在WebDriver 对象实例整个生命周期都起作用。
当要查找某元素时,如果元素可以定位,则继续执行。但目标元素没有马上出现时,浏览器会在你自己设定的时间内以轮询的方式不断地判断元素是否被定位到。若直到超出设置的时长还没有定位到元素,则抛出异常(NoSuchElementException
)
五、什么样的项目适合做自动化
1)功能需求稳定,界面稳定,不会频繁发生变动
2)版本迭代次数比较多,需要经常进行回归
3)项目周期比较长
六、自动化测试的流程
1)首先要做的就是分析出项目整体架构,分析项目中哪些模块是需要做自动化的
2)然后确定测试框架,进行测试规划
3)接下来就可以开始进行设计测试用例,测试用例要足够的明确和清晰,覆盖面广而精
4)再然后进行测试脚本的编写,合理运用断言开验证将结果,合理运用参数化提高测试效率
5)写完脚本后,就执行脚本,如果执行完后出现了异常或者结果不符合预期就需要仔细的分析原因
七、如何分析生成的自动化测试报告
主要看总共执行了多少用例,通过了多少,失败了多少,是否出现了错误
对于错误的用来,很大可能是脚本问题,查看报告中的日志详细信息,看具体哪个位置出错了,针对性去进行调试、修改
对于失败的用例,也是先看报告中的日志,看具体哪个位置出错了,先怀疑自己的脚本是否有误,如果脚本没有问题,那就可以认为是一个 BUG 了,提出 BUG
相关文章:
Web自动化测试——常见问题篇
文章目录一、什么是自动化测试二、为啥进行自动化测试(优点)三、Webdriver 的工作原理四、显示等待和隐式等待的区别五、什么样的项目适合做自动化六、自动化测试的流程七、如何分析生成的自动化测试报告一、什么是自动化测试 所谓的自动化测试就是使用…...
快速实现Modbus TCP转BACnet IP协议的方案
一、需求背景 BACnet是用于智能楼宇自控系统的主流通信协议,可用在暖通空调系统(HVAC,包括暖气、通风、空气调节),也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。楼宇中的受控设备都通过BACnet协议连接到…...
Unity CircleLayoutGroup 如何实现一个圆形自动布局组件
文章目录简介实现原理Editor 编辑器简介 Unity中提供了三种类型的自动布局组件,分别是Grid Layou Group、Horizontal Layout Group、Vertical Layout Group,本文自定义了一个圆形的自动布局组件Circle Layout Group,如图所示: Ra…...
springcloud+nacos+gateway案例
一、先搭建好springcloudnacos项目地址:https://javazhong.blog.csdn.net/article/details/128899999二、spring cloud gateway简述Spring Cloud Gateway 是Spring Cloud家族中的一款API网关。Gateway 建立在 Spring Webflux上,目标是提供一个简洁、高效的API网关&a…...
实习这么久,你知道Maven是如何从代码仓库中找到需要的依赖吗?
目录 碎碎念 Maven是如何找到代码仓库里需要的依赖的? 如何根据坐标在本地仓库中寻找所需要的依赖? 如何根据坐标在远程仓库中寻找所需要的依赖? Maven 如何使用 HTTP 或 HTTPS 协议从远程仓库中获取依赖项,请详细解释其原理…...
低代码/零代码的快速开发框架
目前国内主流的低代码开发平台有:宜搭、简道云、明道云、云程、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势,定位也不同,用户可以根据自己需求选择。 一、阿里云宜搭 宜搭是阿里巴巴集团在20…...
C# 中常见的设计模式
设计模式是一套被广泛应用于软件设计的最佳实践,它们可以帮助开发者解决特定的问题,提高代码的可重用性、可读性和可维护性。本文将介绍 C# 中常见的几种设计模式,并提供相应的示例代码。 工厂模式 工厂模式是一种创建型设计模式,…...
promethues/servicemonitor
目录 1.promethues 能保证源源不断地采集/metrics 信息吗?每次都是最新的吗 2.部署servicemonitor 的作用是什么? 3.pod 部署采集数据直接上报promthues ,不通过servicemonitor 可以吗? 4.你说的"此外,如果部署…...
postman使用简介
1、介绍 postman是一款功能强大的网页调试和模拟发送HTTP请求的Chrome插件,支持几乎所有类型的HTTP请求 2、下载及安装 官方文档:https://www.getpostman.com/docs/v6/ chrome插件:chrome浏览器应用商店直接搜索添加即可(需墙&…...
@DS注解在事务中实现数据源的切换@DS在事务中失效【已解决】
在Springboot的application.yml中的配置: spring:datasource:url: jdbc:mysql://localhost:3306/test2?serverTimezoneUTC&useUnicodetrue&characterEncodingutf8driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: rootdynamic:primar…...
Java I/O之文件系统
一、全文概览 在学习文件系统之前,需要了解下Java在I/O上的发展史:在Java7之前,打开和读取文件需要编写特别笨拙的代码,涉及到很多的InputStream、OutputStream等组合起来使用,每次在使用时或许都需要查一下文档才能记…...
Mysql元数据获取方法(information_schema绕过方法)
前提:如果waf或其它过滤了information_schema关键字,那我们该如何获取元数据呢?能够代替information_schema的有:sys.schema_auto_increment_columnssys.schema_table_statistics_with_bufferx$schema_table_statistics_with_buff…...
Eclipse快捷键
* 1.补全代码的声明:alt /* 2.快速修复: ctrl 1 * 3.批量导包:ctrl shift o* 4.使用单行注释:ctrl /* 5.使用多行注释: ctrl shift / * 6.取消多行注释:ctrl shift \* 7.复制指定行的代码:ctrl a…...
java ssm自习室选座预约系统开发springmvc
人工管理显然已无法应对时代的变化,而自习室选座预约系统开发能很好地解决这一问题,既能提高人力物力,又能提高预约选座的知名度,取代人工管理是必然趋势。 本自习室选座预约系统开发以SSM作为框架,JSP技术,…...
分享我从功能测试转型到测试开发的真实故事
由于这段时间我面试了很多家公司,也经历了之前公司的不愉快。所以我想写一篇文章来分享一下自己的面试体会。希望能对我在之后的工作或者面试中有一些帮助,也希望能帮助到正在找工作的你。 找工作 我们总是草率地进入一个自己不了解的公司工作…...
TypeScript快速入门———(二)TypeScript常用类型
文章目录概述1 类型注解2 常用基础类型概述3.原始类型4 数组类型5 类型别名6.函数类型7 对象类型8 接口9 元组10 类型推论11 类型断言12 字面量类型13 枚举14 any 类型15 typeof概述 TypeScript 是 JS 的超集,TS 提供了 JS 的所有功能,并且额外的增加了…...
Mac M1 使用Centos8➕VMware Fusion进行静态网络配置
大部分的流程网络上面都有当我们已经下载好mac m1版的Centos8链接: https://pan.baidu.com/s/1UTl4Lo-_c17s-PDj3dA6kA 提取码: 7xh2 和VMware Fusionhttps://www.vmware.com/cn/products/fusion.html之后就可以进行安装了在导入过后 记得将硬盘和内存都设置好了 记得在关机状态…...
RadGraph: Extracting Clinical Entities and Relations from Radiology Reports代码
文章来源:NeurIPS 文章类别:IE(Information Extraction) RadGraph主要基于dygie,主要文件为inference.py。 inference.py: 1、get_file_list(data_path) def get_file_list(path):file_list [item for item in glob.glob(f&q…...
13. OPenGL与QT界面元素交互控制图形渲染
1. 说明: 前面文章中讲到的 OPenGL 渲染都是在页面加载完成即立刻渲染的,如果向控制图形渲染的时间,可以在QT界面中添加一些元素来进行控制。此时需要用到OPenGL当中的makeCurrent(),update(),doneCurrent()函数。 效果展示: ope…...
高通平台开发系列讲解(USB篇)libuvc详解
文章目录 一、什么是UVC二、UVC拓扑结构三、libuvc的预览时序图沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍libuvc。 一、什么是UVC UVC,全称为:USB video(device) class。 UVC是微软与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标…...
ICC2:set_route_opt_target_endpoints
route_opt阶段通过指定endpoint/driver pin list的方式执行incremental优化。 set_route_opt_target_endpoints [-setup_endpoints file] [-setup_endpoints_collection pin_list] [-hold_endpoints file] [-hold_endpoints_collection pin_list] [-ldrc_objects fil…...
5、小程序面试题
1, 小程序页面有哪些生命周期函数onLoad: 页面加载onReady: 页面初次渲染完成onShow: 页面显示onHide: 页面隐藏onUnload: 页面卸载2, 一页小程序页面有哪些文件组成,分别有什么作用.wxml: 使用微信框架设计的一套组件构建页面结构.wxss: 用于设置页面样式, 和css基本一致.js :…...
Java特殊操作流
6 特殊操作流 6.1 标注输入输出流 System类中有两个静态的成员变量: public static final InputStream in:标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源public static final PrintStream out:标准输…...
如何用SCRM销售管理系统管理销售和做销售管理
每一家企业都在找适合自己公司的销售管理方法,实现销售目标和努力提高业绩。 我们常说,做好销售管理有很多路径和方法,但我们不知道从哪里开始?每个阶段我们该怎么办?如何有效管理销售团队?好的企企业微信…...
分享117个HTML婚纱模板,总有一款适合您
分享117个HTML婚纱模板,总有一款适合您 117个HTML婚纱模板下载链接:https://pan.baidu.com/s/1cC3I5cfh91-KmQj4nfSoPA?pwd9hod 提取码:9hod Python采集代码下载链接:采集代码.zip - 蓝奏云 import os import shutil import …...
VIVADO2022 sdk 工程创建流程
正点原子uart历程复现 create block design(起名 为System) -> open block design -> 号/IP catalog 中搜索zynq 双击打开, 将和pl相关的时钟都干掉 再auto 布线一下 把herarchy中的sources 中的system.bd右键、 无脑下一步导出 如…...
【MyBatis】源码学习 02 - Java 元注解以及 MyBatis @Param 注解分析
文章目录前言参考目录学习笔记1、Java 注解1.1、Java 元注解1.2、Java ElementType 枚举值1.3、自定义注解2、Param 注解分析2.1、Param 注解2.2、测试方法2.3、流程分析(重点:ParamNameResolver)前言 本文内容对应的是书本第 7 章的内容&am…...
贪心算法-蓝桥杯
一、贪心算法的优缺点优点:1.容易理解:生活常见。2.操作简单:在每一步都选局部最优。3.效率高: 复杂度常常是O(1)的。缺点:1.局部最优不一定是全局最优。二、例子: 最少硬币问题硬币面值1、2、5。支付13元,要求硬币数量最少。贪心法: (1) 5元…...
zookeeper 复习 ---- chapter03
zookeeper 复习 ---- chapter03如何创建 zookeeper 对象 要求: 1:知道这几个构造参数 2:知道每一个参数的含义 ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) ZooKeeper(String connectString, int sessionTimeout…...
1.PostgreSQL
文章目录LIMITWITH 和RECURSIVEPostgreSQL 约束PostgreSQL AUTO INCREMENT(自动增长)PostgreSQL PRIVILEGES(权限)GRANT语法LIMIT SELECT * FROM COMPANY LIMIT 3 OFFSET 2;WITH 和RECURSIVE WITH RECURSIVE t(a,b) AS (VALUES (…...
影视网站怎么做app/上海有哪些优化网站推广公司
用vue做桌面应用程序设定精灵 (Setup Wizard) This page allows you to pick and install multiple apps at once through your macs terminal using brew. 该页面允许您使用brew通过Mac终端一次选择并安装多个应用程序。 View Demo 查看演示 View Github 查看Github 指令 (Co…...
泉州做网站公司/网络推广电话销售技巧和话术
SQL数据库语言解释 COLUMN_SCHOOL_ID " interger," 切记表名和列名还有列名和类型要空格隔开并且结尾要加逗号。 一般drop table if exists是数据库里面的,后面接表名如:drop table if exists xxx_book 如果数据库中存在xxx_book表&…...
python做网站步骤/河南省郑州市金水区
当集群中所有节点都宕机后,集群再次启动后,能否自动选主1、MGR集群所有节点都宕机后,集群重启,能否自动选主和启动MGR服务这是个来自群友的问题。首先,MySQL服务利用 systemd 即可实现故障后自启动,注意下面…...
2003服务器建设网站/网络营销公司是做什么的
TypeScript是一门开源的,由微软开发维护的,发布于2012年10月的静态类型的语言; 他是ECMAScript的超集,支持JavaScript的所有语法和语义,并且在此基础之上提供了更多额外的特性,例如静态类型和更丰富的语法。…...
开展农业信息网站建设工作总结/企业网络营销推广方案策划
tiles,俗称"小部件"。由于当今界面设计的可用性要求界面必须保持一致。早期开发使用文件包含的方式来使页面模块化,类型<%include file""%> <jsp:include page"">之类的包含指令或jsp标签。这样导致所有包含这些的页面都…...
天津网站建设zmad/最近最新的新闻
现在微信已经关闭了QQ号和邮箱注册的功能,那如何才能用邮箱登陆微信呢?下面小编以TOM邮箱为例,分享一下邮箱登录微信的具体操作~ 1、打开微信,点击注册,默认为手机号注册。输入手机号注册一个账号(只用手机…...