网站首页 > 技术文章 正文
本文节选自霍格沃兹测试开发学社内部教材
Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以帮助我们自动化完成验收测试,通过构建更严格的测试,从而使软件更为可靠也更易于维护。
Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较等功能。支持多种浏览器、多种编程语言(Java、C#、Python、Ruby、PHP 等)、支持多种操作系统(Windows、Linux、IOS、Android 等)、开源免费。它主要由三个工具组成:WebDriver、IDE、Grid。
Selenium架构
在客户端(client)完成 Selenium 脚本编写,将脚本传送给 Selenium 服务器,Selenium 服务器使用浏览器驱动(driver)与浏览器(browser)进行交互。
Selenium核心组件
- WebDriver 使用浏览器提供的 api 来控制浏览器,就像用户在操作浏览器,不具有侵入性。
- IDE 是 Chrome 和 Firefox 扩展插件,可以录制用户在浏览器中的操作。
- Grid 用于 Selenium 分布式,你可以在多个浏览器和操作系统运行测试用例。
环境准备
第一种方式
Python 自带的 pip 工具安装
- Python 版本
pip install selenium
- Java 版本
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.14.0</version>
</dependency>
第二种方式
- Python 版本
安装 Selenium 的前提是拥有 Python 开发环境(推荐使用 PyCharm):
Selenium 是 Python 的第三方库,可采用 PyCharm 自带方式安装。
菜单栏 File -> Settings 进入配置界面:
搜索 Selenium -> Install Package:
Selenium 支持多种浏览器,需要下载对应的浏览器版本的驱动,将浏览器驱动位置设置到环境变量。
各个浏览器驱动下载地址:https://ceshiren.com/t/topic/3275
在 Python 文件中编写代码,如果程序能够调起相应浏览器,说明安装成功。
- Java 版本
当使用 Maven 或 Gradle 等构建工具时,会自动加载依赖项。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.0.0</version>
</dependency>
实战演示
Python 代码演示
#导入 Selenium 包
from selenium import webdriver
#创建一个 Chromdriver 的实例,Chrome()会从环境变量中寻找浏览器驱动
driver = webdriver.Chrome()
# 打开 IE 浏览器
# driver = webdriver.Ie()
# 打开 Firefox 浏览器
# driver = webdriver.Firefox()
Java 代码演示
//导入 Selenium 包
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AiceTest {
public static void main(String[] args) throws InterruptedException {
//创建一个 Chromdriver 的实例
WebDriver driver = new ChromeDriver();
}
}
这段代码运行后会自动化的创建一个 Chrome 进程。
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力。
获取更多内容:获取更多内容:
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=toutiao×tamp=1650265361
猜你喜欢
- 2025-01-18 43个最热门的K8S面试问题和答案
- 2025-01-18 盘点网络自动化的几款常用的开源工具,你会用几个?
- 2025-01-18 ELK Stack生产实践——自定义日志采集(Fleet方式)
- 2025-01-18 Junit5 架构、新特性及基本使用(常用注解与套件执行)
- 2025-01-18 ELK Stack实用教程:让你的日志数据发挥更大的价值
- 2025-01-18 Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决
- 2025-01-18 Linux隔离技术-CHROOT
- 2025-01-18 Kubernetes日志采集ELK|收集Python项目日志并展示
- 2025-01-18 Kubernetes日志采集ELK|部署Logstash日志收集
- 2025-01-18 Loki日志系统,比ELK轻量多了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)