自动化测试【软件测试】

news2024/12/25 1:41:41

自动化测试

什么是自动化

有效减少人力的消耗,同时提高生活的质量

通过自动化测试有效减少人力的投入,同时提高了测试的质量和效率

由于回归测试,版本越来越多,版本回归的压力越来越大,仅仅通过人工测试来回归所有版本是不现实的,所以自动化测试就变得需要。

自动化测试分类

  • 接口自动化测试
  • UI自动化测试(界面测试)
    • 移动端自动化测试
    • web端自动化测试 (selenium)

selenium工具

自动化测试工具有许多,那么我们为什么选择selenium作为我们的web自动化测试工具?

  • 开源免费
  • 跨平台、多平台支持: linux、windows、mac
  • 支持多浏览器 :Firefox、Internet Explorer、Safari、Opera、Chrome、Edge
  • 核心功能:就是可以在多个浏览器上进行自动化测试
  • 可以搭配多种编程语言使用:Java、Python、C#、JavaScript、Ruby等
  • selenium包提供了很多可供测试使用的API

环境部署【Java】—— 环境部署博客

  • 浏览器
  • 浏览器驱动
  • selenium工具包

jdk版本最低要求8

关于环境部署常见问题总结

  1. SessionNotCreatedException在这里插入图片描述

原因:selenium找不到Chrome.exe的安装路径

解决办法:
前提:请先确认您下载的谷歌浏览器不是盗版。
驱动实例化中使用绝对路径:

ChromeDriver driver = new ChromeDriver("E:/browser/Google/Chrome/Application/chrome.exe);//注意:这里放同学自己的Chrome.exe所在路径哦,不要盲目复制粘贴~~
  1. The version of ChromeDriver only support xxxxxxxxx
    在这里插入图片描述

原因:浏览器版本和驱动版本不匹配,重新在官网下载对应版本的驱动

下载地址:浏览器驱动下载
3. The path to the driver executable the path to
在这里插入图片描述

原因:浏览器驱动没有放到系统环境变量下

解决办法(二选一即可):
1)找到驱动所在路径,复制路径并添加系统环境变量
2)将驱动放到jdk路径下

selenium编写的自动化脚本是如何打开浏览器的【案例】

这里说的就是 selenium、 驱动 、 浏览器 三者之间的关系。

  1. 使用selenium编写自动化脚本代码
  2. 驱动要接收selenium脚本发过来的http请求,并且解析请求

创建Maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bKgvR248-1673931435499)(C:\Users\17512\AppData\Roaming\Typora\typora-user-images\1673929399396.png)]

引用selenium依赖包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GqP4ea8u-1673931435501)(C:\Users\17512\AppData\Roaming\Typora\typora-user-images\1673929545893.png)]

创建自动化实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s7AMeNSa-1673931435501)(C:\Users\17512\AppData\Roaming\Typora\typora-user-images\1673930365056.png)]

AutoTest.java

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author SunYuHang
 * @date 2023-01-17 12:26
 * @ClassName : AutoTest  //类名
 */

public class AutoTest {
    //打开我自己发布的博客网站 登录博客网站   
    public void Test() throws InterruptedException {
        //打开浏览器
        ChromeDriver chromeDriver = new ChromeDriver();
        //在浏览器访问 http://43.140.252.242:8080/blog_system/blog_login.html
        chromeDriver.get("http://43.140.252.242:8080/blog_system/blog_login.html");
        //找到用户名输入框并输入用户名
        chromeDriver.findElement(By.cssSelector("#username")).sendKeys("admin");
        Thread.sleep(5000);
        //找到密码输入框并输入密码
        chromeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");
        Thread.sleep(5000);
        //点击登录按钮
        chromeDriver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(5000);
        //结束会话
        chromeDriver.quit();
    }
}

RunAutoTest.java

/**
 * @author SunYuHang
 * @date 2023-01-17 12:26
 * @ClassName : RunAutoTest  //类名
 */

public class RunAutoTest {
    public static void main(String[] args) throws InterruptedException {
        AutoTest autoTest = new AutoTest();
        autoTest.Test();
    }
}

效果展示

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.3、进程控制

整体框架 1、什么是进程控制? 进程控制的主要功能是对系统中的所有进程实施有效的管理, 它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 简单来说:进程控制就是要实现进程状态转换 2、如何实现进程控制? 2.1、进程…

ATAC-seq分析:TSS 信号(7)

ATACseq ATACseq - 使用转座酶并提供一种同时从单个样本的转录因子结合位点和核小体位置提取信号的方法。 1. 数据类型 上面这意味着我们的数据中可能包含多种信号类型。 我们将从无核小体区域和转录因子(我们的较短片段)周围获得信号。我们的一部分信号…

2-Spring核心与设计思想

目录 1.Spring是什么? 2.容器是什么? 3.IoC是什么? 3.1.传统程序开发 3.2.控制反转式程序开发 3.3.对比总结规律 4.理解Spring IoC 4.1.将对象(Bean)存入到容器(Spring); 4.2.从容器中取出对象。 5.DI概念说明 1.Spring…

计算机编程背景

💖 欢迎来阅读子豪的博客(JavaEE篇 🤴) 👉 有宝贵的意见或建议可以在留言区留言 💻 欢迎 素质三连 点赞 关注 收藏 🧑‍🚀码云仓库:补集王子的代码仓库 不要偷走我小火…

classpath类路径是什么

Spring Boot 一、简介 classpath类路径在 Spring Boot 中既指程序在打包前的/java/目录加上/resource目录,也指程序在打包后生成的/classes/目录。两者实际上指的是同一个目录,里面包含的文件内容一模一样。 二、获取classpath路径 以下两种方式均可…

Icarus Verilog

Icarus Verilog 是一个Verilog仿真工具,以编译器的形式工作,将以verilog编写的源代码编译为某种目标格式。如果要进行仿真的话,可以生成一个vvp的中间格式,由其所附带的vvp命令执行。 https://github.com/steveicarus/iverilog …

面试官:请设计一个能支撑百万连接的系统架构!

目录 1、到底什么是连接?2、为什么每次发送请求都要建立连接?3、长连接模式下需要耗费大量资源4、Kafka遇到的问题:应对大量客户端连接5、Kafka的架构实践:Reactor多路复用6、优化后的架构是如何支撑大量连接的 这篇文章&#x…

SQL Server 全文索引的应用

在公司项目中提出了一个需求: 搜索包含指定关键词的数据。得到这需求后,站在技术角度考虑第一时间就联想到使用SQL里面“like”查询语句。进一步分析需求后,发现“Like”查询满足不到实际的要求。 示例: ---------------------…

【Ajax】接口与接口测试工具PostMan

一、接口接口的概念使用 Ajax 请求数据时,被请求的 URL 地址,就叫做数据接口(简称接口)。同时,每个接口必须有请求方式。例如:http://www.liulongbin.top:3006/api/getbooks 获取图书列表的接口(GET请求)ht…

【4 - 降维算法PCA和SVD - 案例部分】菜菜sklearn机器学习

课程地址:《菜菜的机器学习sklearn课堂》_哔哩哔哩_bilibili 第一期:sklearn入门 & 决策树在sklearn中的实现第二期:随机森林在sklearn中的实现第三期:sklearn中的数据预处理和特征工程第四期:sklearn中的降维算法…

为何香港的IB状元特别多?

今年IB预科课程(The International Baccalaureate Diploma Programme,IBDP)公开考试放榜,香港的学校又是大丰收的一年!因为香港今年一共有九十三名IB状元,即IB的总分为四十五分满分,而他们全部取…

Linux 环境部署 Nexus 服务

一 私服是什么? 一个特殊的远程仓库,它是架设在局域网内的仓库服务,供局域网内的开发人员使用。 当Maven需要下载构建的使用, 它先从私服请求,如果私服上没有的话,则从外部的远程仓库下载,然后…

算力服务亟待破局,超聚变向新而行

“超聚变已独立活下来。”超聚变产品线总裁范瑞琦在2023新品发布会上透露。自从一年多前从华为体系独立,超聚变公司的未来就颇受业界关注。一方面,算力产业蒸蒸日上,各方尤为关注超聚变的产业定位以及发展算力产业的着力点;另一方…

mysql存储过程的流程控制

本文来说下mysql存储过程的流程控制语句 文章目录流程控制概述IF语句CASE语句LOOP语句LEAVE语句ITERATE语句REPEAT语句WHILE语句本文小结流程控制概述 存储过程中可以使用流程控制来控制语句的执行。 MySQL中可以使用IF语句、CASE语句、LOOP语句、LEAVE语句、ITERATE语句、REPE…

Cesium设置模型朝向速度矢量方向

Cesium设置模型朝向速度矢量方向 文章目录Cesium设置模型朝向速度矢量方向1. 需求场景2. 技术路线2.1 VelocityOrientationProperty2.2 VelocityVectorProperty3. 参考链接1. 需求场景 现有一段飞机起飞、爬升的轨迹数据,需要在Cesium中模拟出飞行过程动画&#xf…

Lesson 3. 线性回归的手动实现(3.3 线性回归手动实现与模型局限 3.4 机器学习模型结果可信度理论与交叉验证基础)

文章目录一、线性回归手动实现与模型局限1. 线性回归的手动实现2. 线性回归模型局限3. 线性回归的决定系数二、机器学习模型结果可信度理论与交叉验证基础1. 机器学习模型结果可信度理论基础与数据集划分1.1 机器学习模型结果可信度基础理论1.2 数据集切分方法1.3 线性回归手动…

图的关键路径(AOE网络)

文章目录AOE网概念性质研究的问题关键路径概念求解的方法注意事项AOE网 概念 用顶点表示事件, 边弧表示活动, 边弧上的权值表示活动持续的时间, 这样的带权有向无环图叫AOE网. AOE网常用于估算工程完成时间. AOE网和AOV网都是有向无环图, 不同之处在于它们的边和顶点所代表的…

【青训营】Go的高质量编程

Go的高质量编程 本文内容总结自字节跳动青年训练营 第五届 后端组 什么是高质量? 各种边界条件是否完备异常情况能正常处理,稳定性有保障易读易维护 Go语言开发者Dave Cheney指出,编程需要遵循以下原则: 简单性 消除多余的复…

Docker安装和卸载教程

1、安装前先卸载系统上原有的Docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、安装需要的yum-utils包 需要安装 yum-utils包(该包提供了 yum-c…

研一寒假C++复习笔记--程序的内存模型

目录 1--内存分区模型 2--代码区 3--全局区 4--栈区 5--堆区 6--new操作符 1--内存分区模型 执行C程序时,内存可划分为4个区域,不同区域存放的数据,具有不同的生命周期; ① 代码区:存放函数的二进制代码&#x…