努力经营当下,直至未来明朗!

文章目录

  • 一、自动化概述
  • 二、自动化测试的分类
  • 三、自动化测试工具:selenium
  • 四、一个简单的自动化用例
  • 五、Selenium常用方法
    • 1. 查找页面元素:
    • 2.元素的定位(By类)
  • 小结

普通小孩也要热爱生活!

一、自动化概述

  1. 自动化能够减少人力的消耗,同时提高生活质量
  2. 通过自动化测试能够有效减少人力的投入,同时提高了测试的质量和效率。
  3. 注意:自动化不能取代人力的作用。
  4. 版本迭代更新速度较快,如果仅仅通过人力来进行回归测试是有较大压力的,也不太现实,所以就可以借助自动化测试。

二、自动化测试的分类

  1. 自动化测试分为:接口自动化测试 和 UI自动化测试
  2. UI自动化测试:移动端自动化测试、web端自动化测试
  3. 注意:我们目前所针对的是web端自动化测试(一定要明确)

三、自动化测试工具:selenium

  1. Selenium是实施web端自动化测试的工具

  2. 自动化测试工具很多(如:QTP收费、Selenium开源、RFT收费),为什么要选择selenium作为web端测试工具呢?
    开源免费
    ② Selenium可以支持/兼容很多浏览器进行自动化测试,如谷歌、火狐、IE等(但是不同的浏览器是需要修改自动化里的一些配置的,同时也需要修改一些浏览器里的配置)
    支持多系统,如Linux、Windows、MacOS
    支持多语言,如Java、Python、JavaScript等
    ⑤ Selenium包提供了很多可供测试使用的API

  3. 环境部署
    如果想要使用selenium实施web自动化测试,需要的环境是什么?
    Chrome浏览器 + 谷歌驱动(ChromeDriver) + selenium工具包(引入依赖)

① 一定要注意驱动版本和浏览器版本的对应!!
② 注:java的jdk版本最低要求是8

  1. 什么是驱动?

① 举栗子:汽车有驱动才能跑起来
② 计算机也有驱动程序,可以驱动计算机和设备工作起来
③ 人工测试的情况下,人是手动打开浏览器的,那么驱动就是人力(浏览器原生操作)
④ 对于自动化来说,代码是不能够直接打开浏览器的,所以就需要借助驱动程序才能够打开浏览器
⑤ 不同的浏览器对应不同的驱动,只有匹配的驱动才能打开对应的浏览器

  1. Selenium编写的自动化脚本是如何打开浏览器的?(selenium、Driver、浏览器三者之间的关系?

    驱动要接收selenium脚本发送过来的http请求并解析请求,其实也就是:驱动相当于服务器的功能

(注:查看端口是否被占用:netstat -na | findstr 端口号


四、一个简单的自动化用例

  1. 创建一个maven项目 -> 在pom.xml中添加依赖 -> 进行reload
<dependencies><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>
</dependencies>
  1. src -> test -> java -> new -> (创建包) -> 创建java源文件(+需要创建运行测试用例的源文件)

  2. 在编写测试的源文件中创建方法来编写测试用例,然后再运行的源文件中进行调用运行。

  3. 举栗子:在百度网址中搜索关键词“刘亦菲”
    1)手动搜索步骤:

①打开谷歌浏览器
②在url中输入https://www.baidu.com
③在输入框中输入关键词“刘亦菲”
④进行百度一下
⑤关闭浏览器,搜索结束

2)创建自动化测试:(类似手动步骤)
注意:按钮等元素可以使用fn+f12来进行获取!!

3)参考代码:自动化测试:刘亦菲

  1. 简单自动化实例主要包括五个步骤
    ① 创建浏览器驱动,创建会话
    ② 获取网址,访问网站
    ③ 查找元素
    ④ 操作元素
    关闭驱动,结束会话

五、Selenium常用方法

1. 查找页面元素:

  1. findElement(参数):查找一个元素
    ① 参数:By类(提供通过什么方式来查找元素)
    ② 返回值:WebElement
    ③ 当元素可以在页面找到时就正常运行,找不到时程序就报异常NoSuchElementException。

  2. findElements(参数):查找多个元素
    ① 参数:By类(提供通过什么方式来查找元素)
    ② 返回值:List<WebElement>

2.元素的定位(By类)

By类元素定位的方法:

  1. selector:选择器
    1) 选择器分为基础选择器和复合选择器
    2) 选择器功能:选中页面中指定的标签元素
    3) 方式:ctrl+fn打开开发者工具 -> 然后进行选择查看 -> 右键复制selector -> 复制完成后可以进行ctrl+f查看定位

  2. xpath
    1)xpath:xml路径语言,是用来确定xml文档中某部分位置的语言。
    2)语法:(了解就行,使用的时候直接进行复制粘贴)

① 层级:/子级 //跳级
② 属性:@
③ 函数:contains() …

3) xpath如://*[@id="so-hotword"]/ul/li[6] ,li[n]表示的是从1开始数的第n条li标签的数据。

4)补充:自动化中要求元素的定位要唯一!

5)但是手动在页面上复制的selector或xpath元素不一定是唯一的,需要我们进行手动修改到唯一。(在ctrl+f的查找框中修改,同时查看是否唯一!)


小结

  1. 自动化测试的优势
  2. 自动化测试的分类以及我们主要针对的测试
  3. 选择selenium的原因
  4. Selenium编写的自动化脚本是如何打开浏览器的?(三者关系)
  5. 简单自动化测试五个步骤
  6. selenium常用方法:查找元素findElement、元素的定位selector/xpath

【测试】自动化测试01相关推荐

  1. 自动化电子测试软件,自主开发的MIL测试自动化测试工具

    37年,55颗卫星,就在今天北斗真的成功了. 上一篇简单文章中介绍了一下MIL测试的流程,本文章将介绍一个小编自主开发的MIL测试用的自动化测试工具. 目前国内主流测试工具主要有三种类型: 基于第三方 ...

  2. 自动定位失败_自动化测试01

    .自动化测试概念介绍 测试金字塔 1.1.测试的成本 UI自动化依赖于用户界面,用户界面发生变化,可能需要调整大量用例,用例维护成本较高:在用户界面的测试中发现缺陷,修复缺陷的成本也是远远高于通过单元 ...

  3. web自动化测试01

    自动化测试 概念 通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,它可以完成许多手工测试无法完成或者难以完成的测试工作,正确合理的实施自动化测试,能够快速,全面的对软件进行测 ...

  4. 自动化测试系列 | UI测试自动化测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...

  5. 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发

    文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...

  6. APP——内存测试——参考01

    前言: 1.该内容为APP应用客户端的性能测试,未涉及后台,所以并非针对API或数据接口 2.测试的目标项:资源消耗.内存泄露.电量功耗.响应时间 3.客户端的性能指标:内存.CPU.流量 4.本系列 ...

  7. 软件测试黑马工程师---Android app测试(01)

    手机,现在已经完全的融进了现代的生活里.现在只要你带一部手机,基本上已经可以完成生活的基本需求了,衣----淘宝.天猫等各大网络商店送货之你家门口,食---美团.饿了么恨不得把美食送到你嘴边.住--- ...

  8. 浏览器兼容性测试学习01

    浏览器兼容性简介 一个网页在不同的浏览器下,显示的效果可能不一致,这就是所谓的"不兼容". 兼容性测试,主要调试IE8.IE6.IE7.Firefox. http://tongji ...

  9. java自动化初始变量_Java自动化测试-01.环境准备(JDK/环境变量/Intellij IDEA安装)

    Window 系统下 Java 环境搭建 1.1.JDK 下载 如果你是 32 位系统下载 jdk-8u241-windows-i586.exe(32 位) 如果你是 64 位系统下载 jdk-8u2 ...

最新文章

  1. ***必备兵器与技能
  2. 考前自学系列·计算机组成原理·控制器的组成及各部分的功能
  3. ios 日期时间打印
  4. 全球及中国重型设备备件行业发展动态及未来趋势调研报告2021年版
  5. Kafka 2.0 升级,看看携程怎么操作!
  6. 雷军亲曝小米 10 四大猛料!
  7. github使用_简单使用Git与github
  8. HTML5中的移动开发框架有哪些?
  9. mysql sum 对应_ASK MySQL查询SUM不同的表
  10. OPENFILENAME结构的定义
  11. 高等数学(第七版)同济大学 习题3-5 个人解答
  12. 前端——》antdv根据拼音过滤select选择器的选项
  13. FFmpeg 视频旋转处理命令
  14. 区块链开发入门到精通
  15. 学校考场重要组成部分ntp子母钟(时间同步系统)方案
  16. android手机脱网分析,网络营销-13款手机浏览器分析(Android).pptx
  17. Cesium 修改鼠标样式
  18. 《手把手教你构建自己的 Linux 系统》学习笔记(9)
  19. chm提示 已取消到该网页的导航的解决方法
  20. JS 获取操作删除节点

热门文章

  1. /usr/bin/ld: i386 architecture of input file `xx‘ is incompatible with i386:x86-64 output
  2. 使用邮件合并批量制作学生准考证
  3. Red Hat Enterprise Linux (RHEL) 9 更新了什么,即 Rocky Linux 9 和 AlmaLinux 9 展望
  4. HYBBS新模板一个非常漂亮的bbs源码
  5. android OS系统如何适配蓝牙遥控器
  6. index=False含义
  7. 12点的idft c语言,IDFT的公式及C语言实现.doc
  8. 植物大战僵尸OD给僵尸加防具
  9. Brave浏览器保护用户隐私第2招:第三方页面垃圾过滤
  10. 屏保 cmatrix