当前位置: 首页 > news >正文

Web自动化测试——常见问题篇

文章目录

    • 一、什么是自动化测试
    • 二、为啥进行自动化测试(优点)
    • 三、Webdriver 的工作原理
    • 四、显示等待和隐式等待的区别
    • 五、什么样的项目适合做自动化
    • 六、自动化测试的流程
    • 七、如何分析生成的自动化测试报告

一、什么是自动化测试

所谓的自动化测试就是使用自动化工具来编写和执行测试用例,执行自动化测试套件,验证程序功能,就不需要人工的参与。

自动化测试工具可以访问测试数据,控制测试的执行并将实际结果与预期结果进行比较,从而能够生成被测系统详细的测试报告

二、为啥进行自动化测试(优点)

自动化测试能够替代一部分的手工测试,自动化测试能够提高测试效率

随着功能的增加,版本越来越多,版本回归的压力也越来越大,所以仅仅通过人工测试来回归所有的版本肯定是不现实的。自动化脚本可以进行复用,所以我们可以借助自动化来进行回归

自动化测试还完成对手工测试来说比较有难度的测试(比如精准计时),以及一些比较繁琐的测试。机器的执行是更可靠的,减少人为错误

三、Webdriver 的工作原理

自动化脚本代码运行后,每个 selenium 命令,比如点击、输入等等都会创建一个 HTTP 请求并发送给服务器端,这里的服务器端指的就是Webdriver浏览器驱动。

服务器端接收请求,把请求进行解析,就是根据协议规则定义这些 selenium 命令对应的浏览器具体操作,浏览器执行这些操作

执行好后,浏览器将执行状态返回给驱动,驱动在将状态信息返回到自动化脚本,最后就可以看出来结果对不对,是否符合预期

就相当于乘客乘坐出租车,乘客的指令就是脚本,司机就是 Webdriver,听从乘客的指令。来驱动出租车到达目的地,出租车就是浏览器

四、显示等待和隐式等待的区别

显示等待

显示等待是将方法封装在 WebDriverWait 类中的,在使用显示等待指定元素时,如果能够定位到元素就直接返回该元素,不再继续等待。如果不能够定位到该元素,那么就会轮询的定位目标元素,如果超过了指定的显示等待时间还没有等到目标元素,就会抛出异常(TimeoutException

隐式等待

隐式等待,就是在创建driver时,直接通过 driver 进行调用,设置全局元素等待超时时间,这个时间将在WebDriver 对象实例整个生命周期都起作用。

当要查找某元素时,如果元素可以定位,则继续执行。但目标元素没有马上出现时,浏览器会在你自己设定的时间内以轮询的方式不断地判断元素是否被定位到。若直到超出设置的时长还没有定位到元素,则抛出异常(NoSuchElementException

五、什么样的项目适合做自动化

1)功能需求稳定,界面稳定,不会频繁发生变动

2)版本迭代次数比较多,需要经常进行回归

3)项目周期比较长

六、自动化测试的流程

1)首先要做的就是分析出项目整体架构,分析项目中哪些模块是需要做自动化的

2)然后确定测试框架,进行测试规划

3)接下来就可以开始进行设计测试用例,测试用例要足够的明确和清晰,覆盖面广而精

4)再然后进行测试脚本的编写,合理运用断言开验证将结果,合理运用参数化提高测试效率

5)写完脚本后,就执行脚本,如果执行完后出现了异常或者结果不符合预期就需要仔细的分析原因

七、如何分析生成的自动化测试报告

主要看总共执行了多少用例,通过了多少,失败了多少,是否出现了错误

对于错误的用来,很大可能是脚本问题,查看报告中的日志详细信息,看具体哪个位置出错了,针对性去进行调试、修改

对于失败的用例,也是先看报告中的日志,看具体哪个位置出错了,先怀疑自己的脚本是否有误,如果脚本没有问题,那就可以认为是一个 BUG 了,提出 BUG

http://www.lryc.cn/news/9099.html

相关文章:

  • 快速实现Modbus TCP转BACnet IP协议的方案
  • Unity CircleLayoutGroup 如何实现一个圆形自动布局组件
  • springcloud+nacos+gateway案例
  • 实习这么久,你知道Maven是如何从代码仓库中找到需要的依赖吗?
  • 低代码/零代码的快速开发框架
  • C# 中常见的设计模式
  • promethues/servicemonitor
  • postman使用简介
  • @DS注解在事务中实现数据源的切换@DS在事务中失效【已解决】
  • Java I/O之文件系统
  • Mysql元数据获取方法(information_schema绕过方法)
  • Eclipse快捷键
  • java ssm自习室选座预约系统开发springmvc
  • 分享我从功能测试转型到测试开发的真实故事
  • TypeScript快速入门———(二)TypeScript常用类型
  • Mac M1 使用Centos8➕VMware Fusion进行静态网络配置
  • RadGraph: Extracting Clinical Entities and Relations from Radiology Reports代码
  • 13. OPenGL与QT界面元素交互控制图形渲染
  • 高通平台开发系列讲解(USB篇)libuvc详解
  • ICC2:set_route_opt_target_endpoints
  • 5、小程序面试题
  • Java特殊操作流
  • 如何用SCRM销售管理系统管理销售和做销售管理
  • 分享117个HTML婚纱模板,总有一款适合您
  • VIVADO2022 sdk 工程创建流程
  • 【MyBatis】源码学习 02 - Java 元注解以及 MyBatis @Param 注解分析
  • 贪心算法-蓝桥杯
  • zookeeper 复习 ---- chapter03
  • 1.PostgreSQL
  • buu [UTCTF2020]basic-crypto 1