测试篇(五):什么是自动化测试、自动化测试分类、selenium工具、第一个自动化测试程序
创始人
2024-05-19 18:51:12
0

目录

  • 一、什么是自动化测试
  • 二、自动化测试分类
    • 2.1 单元测试
    • 2.2 UI自动化测试
  • 三、selenium工具
    • 3.1 selenium的介绍
    • 3.2 环境部署
    • 3.3 selenium的常用方法
  • 四、第一个自动化测试用例

一、什么是自动化测试

在日常生活中我们会见到,自动化的水龙头、无人驾驶汽车、自动化的洗手液、自动化扫地机器人等…


自动化测试是指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将认为驱动的测试行为转化为机器执行的过程;通过自动化测试有效的减少了人力的投入,同时提高了测试的质量和效率。

二、自动化测试分类

自动化测试包括UI自动化(界面测试)、接口自动化、单元测试自动化,按照下面这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI),可以用较少的投入获得很好的收益。
在这里插入图片描述

2.1 单元测试

最大的投入应该在单元测试上,单元测试运行的频率也更加高。
java的单元测试框架是Junit

2.2 UI自动化测试

UI自动化测试又分为移动端自动化测试和web端自动化测试,后面介绍的selenium工具也是主要用于web端自动化测试的.


在测试金字塔中告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件的实际业务;

【UI自动化的特点】

  • 用例维护量大
  • 页面相关性强,必须后期项目页面开发完后介入
  • UI测试适用于界面变动较小的项目

【UI自动化的好处】

  • 用于回归测试,减少人力的投入
  • 减少重复测试的时间,实现快速回归测试
  • 创建优良可靠的测试过程,减少认为错误
  • 可进行更多繁琐的测试
  • 更好的利用资源
  • 测试脚本的重要性

【UI自动化测试框架】

UI层的测试框架比较多,比如Windows客户端测试的AutoIT,web测试的selenium以及TestPlanteggPlant,Robot framework,QTP等。
下面主要以Web UI自动化测试框架Selenium为例进行详细介绍。selenium有以下优点:

  • 免费,也不用再为破解软件而大伤脑筋
  • 小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。
  • 支持多语言,熟悉C、java、ruby、python、或都是C#,你都 可以通过selenium 完成自动化测试,而QTP 只支持VBS
  • 支持多平台:windows、linux、MAC ,
  • 支持多浏览器:ie、ff、safari、opera、chrome
  • 提供了很多可供测试使用的API
  • 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功能

【UI自动化测试的适用对象】

实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用。
适合做自动化的项目:

  1. 产品型项目。产品型的项目,新版本是在旧版本的基础上进行改进,功能变不大的项目,但项目的新老功能都必须重复的进行回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
  2. 机械并频繁的测试。每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。比如兼容性测试。

以下情况的项目不适合做自动化测试:

1、需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低
2、项目周期短,自动化脚本编制完成后使用次数不多,性价比低
3、交互型较强的项目,需要人工干预的项目,自动化无法实施

【自动化测试需要了解哪些技能?】

了解被测系统的基本业务、了解业务的基本框架、懂得功能测试、懂得一门编程语言、了解数据库与操作系统、了解常见的测试框架…

三、selenium工具

3.1 selenium的介绍

Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。
早期的selenium RC已经被现在的webDriver所替代,可以简单的理解为selenium1.0+webdriver构成现在的Selenium2.0。现在我们说起selenium,一般指的是Selenium2.0。它有由Selenium IDE,Webdriver,Selenium Grid组成。

3.2 环境部署

想要使用selenium实施web自动化测试,需要的环境是什么呢?

  • 首先需要一个浏览器,我这里选择的使Chrome浏览器
  • ChromeDriver:谷歌浏览器的驱动
  • selenium工具包

【什么是浏览器的驱动?】

对于一台机计算机来说,可以驱动计算机和设备工作起来
对于自动化来说,使用selenium编写的脚本代码,不能直接的打开浏览器,这是就需要借助驱动程序打开浏览器

在这里插入图片描述
驱动程序相当于是一个服务器

3.3 selenium的常用方法

  • 查找页面元素 findElement
    在这里插入图片描述
    在这里插入图片描述
  • 查找标签/属性相同的元素列表 findElements()方法

在这里插入图片描述
在这里插入图片描述

  • 定位元素的方法 ,通过By类中提供的方法
    在这里插入图片描述
    在这里插入图片描述

  • xpath方法
    语法:在这里插入图片描述
    在这里插入图片描述
    对于xpath方法的使用,通过在页面中Copy XPath作为方法的参数即可

四、第一个自动化测试用例

第一步:创建一个Maven项目,并引入selenium依赖
在这里插入图片描述
第二步:在test目录下创建包和java文件
在这里插入图片描述
第三步:在Test1中编写代码,达到"在百度搜索框中搜索迪丽热巴"的目的

package com.autotest;import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;public class Test1 {//百度网址搜索关键词"迪丽热巴"public  void dilirebaTest() throws InterruptedException {ChromeDriver chromeDriver=new ChromeDriver(); //创建一个驱动实例Thread.sleep(3000);chromeDriver.get("https://www.baidu.com"); //输入百度网址,访问百度首页Thread.sleep(3000);//找到搜索输入框元素,并输入关键字"迪丽热巴"chromeDriver.findElement(By.cssSelector("#kw")).sendKeys("迪丽热巴");Thread.sleep(3000);//找到"百度一下"按钮并点击chromeDriver.findElement(By.cssSelector("#su")).click();Thread.sleep(3000);chromeDriver.quit(); //关闭浏览器}
}

第四步:启动程序

package com.autotest;public class RunAutoTest {public static void main(String[] args) throws InterruptedException {Test1 test1=new Test1();test1.dilirebaTest();}
}

【简单的自动化示例主要分以下几步】

  1. 创建驱动实例,创建会话
  2. 访问网站
  3. 查找元素
  4. 操作元素
  5. 结束会话

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...