自动化测试01

目录

一、自动化概述

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工具包(引入依赖)

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

5.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>

2.src -> test ->java -> new -> (创建包) -> 创建java源文件(+需要创建运行测试用例的源文件)
请添加图片描述
请添加图片描述
3.在编写测试的源文件中创建方法来编写测试用例,然后再运行的源文件中进行调用运行。

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

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

2)创建自动化测试:(类似手动步骤)
注意:按钮等元素可以使用fn+f12来进行获取!!
请添加图片描述
3)参考代码:自动化测试:刘亦菲

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

五、Selenium常用方法

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

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

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的查找框中修改,同时查看是否唯一!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值