问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【测试篇】关于自动化测试前言,自动化测试的基本概念

创作时间:
作者:
@小白创作中心

【测试篇】关于自动化测试前言,自动化测试的基本概念

引用
1
来源
1.
https://cloud.tencent.com/developer/article/2507258

1.自动化

1.1自动化测试概念

在平时的生活中,自动化到处都是,自动门,自动洒水器,自动除草机;但是在软件测试中,目的概念如下所示:

软件测试自动化,有效减少了测试过程中的人力消耗,并提高了软件测试的效率与正确性

1.2回归测试

软件有多个版本需要进⾏功能的整体回归。 为了避免新增功能影响到历史的功能需要进⾏功能的回归
即在多次版本更新中,需要进行软件的历史功能测试,防止新增功能影响历史功能;

自动化测试会取代人吗?

⾃动化测试不⼀定⽐⼈⼯测试更能保障系统的可靠性,⾃动化测试是测试⼈员⼿⼯编写,后续如果有功能的变更⾃动化也需要进⾏不定期的维护和更新
自动化测试可以一定程度上降低测试测试人员的工作;

1.3自动化测试分类

1.3.1接口自动化

所谓的接口自动化,这里主要是涉及到后端代码层面,聚焦于自动化测试应用程序编程接口(API),保证接口的准确性,稳定性;

1.3.2UI自动化

这里的UI自动化也可以分为两类,即Web自动化,以及客户端自动化;

Web自动化:

  • 使用场景:主要针对基于 Web 浏览器的应用程序,包括各种网站、Web 应用系统等。例如,电商网站、企业办公系统的 Web 版等。

  • 技术工具:常用的工具如 Selenium,它可以通过各种浏览器驱动来操作浏览器,模拟用户的点击、输入、选择等操作,还能与多种编程语言(如 Java、Python、C# 等)结合使用。

客户端自动化:

  • 使用场景:针对安装在本地计算机或移动设备上的客户端应用程序,如 Windows 桌面应用、Mac 应用、移动 APP 等。例如,微信 PC 端、手机银行 APP 等。

  • 技术工具:对于桌面应用,常见的工具有 AutoIt、WinAppDriver 等,它们可以操作 Windows 系统下的各种应用程序界面元素。

1.4自动化测试金字塔

理想的自动化测试:

解释:顾名思义,从上到下,手动测试,自动化测试,接口测试(根据请求,检查响应数据格式以及内容),以及单元测试(即对程序最小单元执行,一般是由开发人员进行测试)
顶端就是要消耗更多的时间精力,但是收获相反很小;往下就是更低的时间精力消耗,但是获得的投资回报率更高;

但是在现实的自动化测试如下:

即在真实的测试中,手动测试以及自动化测试的消耗的精力更高,那么投资回报率越高;因为在进行手动测试以及UI自动化测试的过程中,后端的问题会在前端进行显示;

2.Web自动化

2.1驱动

即模拟我们人为对于浏览器的操作;那么我们要打开浏览器,就需要浏览器驱动;此时我们需要下载驱动;

驱动下载问题:不同的浏览器需要不同的浏览器的驱动,不同版本的浏览器需要不同版本的浏览器驱动
那么我们浏览器会自动更新,那么每次更新我们都要下载新的驱动吗?答案不是的,那么就引入驱动管理程序;

创建我们的项目文件:

2.2安装驱动管理

WebDriverManager是⼀个开源Java库,以完全⾃动化的⽅式对Selenium WebDriver所需的驱动程 序(如chromedriver、geckodriver、msedgedriver等)进⾏管理(即下载、设置和维护)

这里我们需要引入依赖:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.8.0</version>
</dependency>

3.selenium

接下来就是使⽤selenium来编写web⾃动化测试脚本。selenium是⼀个web⾃动化测试⼯具,selenium中提供了丰富的⽅法供给使⽤者进⾏web⾃动化测试。

3.1引入依赖

代码如下:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0</version>
</dependency>

接下来就是编写代码,一般作为测试人员,我们最好是在test包里进行代码的编写;

3.2编写脚本代码

目的:
1.打开百度浏览器; 2.输入我们要输入的内容; 3.点击百度一下; 4.关闭浏览器;

第一步的代码如下所示:

public class FirstTest {
    void test1() throws InterruptedException {
        //创建浏览器驱动
        WebDriverManager.chromedriver().setup();
        //增加浏览器配置
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        //创建驱动对象
        WebDriver driver = new ChromeDriver(options);
        Thread.sleep(3000);
    }
}

接下来小编进行一一的解释:
第一步创建谷歌浏览器的驱动,然后创建驱动对象,进行后序的相关操作;但是由于浏览器对于自动化操作不安全问题,自动配置options进行所有网址的访问;

第二步代码如下:

//输入请求的网站
driver.get("https://www.baidu.com/");
Thread.sleep(3000);
//找到输入框,然后输入内容
driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");
Thread.sleep(3000);
//找到元素并点击
driver.findElement(By.cssSelector("#su")).click();
Thread.sleep(3000);
driver.quit();

解释:
这里就是通过get访问百度网址,然后通过findelement进行元素的查找,此时我们通过选择器cssSelector进行查找对应的元素,那么“#kw指的就是百度搜索框,通过sendKey输入我们要查找的内容;
最后通过同样的方式找到这里的百度一下点击搜索元素,通过click进行点击操作,最后退出浏览器;(小编这里使用sleep强制等待是为了方便自己查看,因为程序自动运行操作很快)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号