当前位置: 首页 > news >正文

从0开始搭建自动化测试平台,构建自动化测试平台的最全指南!

前言

随着软件开发的不断进步,测试工程师也需要跟上趋势并适应新的测试方法。自动化测试已成为现代测试领域中不可或缺的一部分。它可以提高测试效率、减少测试成本,并且可以避免人为错误对测试结果的影响。在这篇文章中,我们将介绍如何构建一个自动化测试平台,以便团队可以高效地开展自动化测试工作。

第一步:确定自动化测试框架

选择适合的自动化测试框架是非常重要的。在考虑选择框架之前,需要评估项目要求和技术能力,以选择最佳框架。目前比较流行的自动化测试框架有Selenium,Appium,TestNG等。在本文中,我们将使用Selenium框架进行自动化测试。

首先,需要安装Selenium WebDriver。WebDriver是Selenium的核心组件,用于控制浏览器。安装Selenium WebDriver时,需要根据浏览器类型下载相应的驱动程序。在我们的示例中,假设我们要使用Google Chrome浏览器进行测试,因此我们需要下载ChromeDriver。

以下是ChromeDriver下载链接:

https://sites.google.com/a/chromium.org/chromedriver/downloads

接下来,按照以下步骤安装Selenium:

安装Python

首先,需要安装Python。Selenium支持Python语言,因此我们需要安装Python来运行自动化测试脚本。我们将使用Python 3.x版本,可以到Python官网下载最新版本的Python。

安装Selenium WebDriver

从Selenium官网下载Selenium WebDriver,并解压缩文件。将ChromeDriver放置在PATH环境变量下,这样我们就可以通过命令行启动Chrome浏览器。

安装依赖库

在开始编写自动化测试脚本之前,还需要安装必要的依赖库。可以使用pip工具安装依赖库。在命令行中输入以下命令以安装所需的依赖库:

pip install selenium
第二步:编写自动化测试脚本

现在,我们已经安装了Selenium框架并准备好编写自动化测试脚本。我们将编写一个简单的脚本,该脚本将打开Google首页并搜索“selenium”。

首先,需要导入Selenium模块:

from selenium import webdriver

接下来,创建一个WebDriver实例,用于控制浏览器:

driver = webdriver.Chrome()

然后,使用get()方法打开指定的URL:

driver.get("https://www.google.com")

现在,我们将在搜索框中输入搜索关键字:

  1. search_box = driver.find_element_by_name("q")

  2. search_box.send_keys("selenium")

  3. search_box.submit()

最后,我们可以关闭浏览器:

driver.quit()

完整代码如下:

  1. from selenium import webdriver

  2. driver = webdriver.Chrome()

  3. driver.get("https://www.google.com")

  4. search_box = driver.find_element_by_name("q")

  5. search_box.send_keys("selenium")

  6. search_box.submit()

  7. driver.quit()

第三步:构建自动化测试平台

现在,我们已经准备好编写自动化测试脚本并使用Selenium框架运行它们。但是,在实际项目中,可能需要同时运行数百个测试脚本,并且需要对测试结果进行汇总和分析。为了实现这一点,需要搭建自动化测试平台。

自动化测试平台通常由以下几个组件构成:

1.测试管理工具

测试管理工具用于创建测试计划、测试用例和测试报告。目前比较流行的测试管理工具有JIRA,TestRail等。在本文中,我们将使用TestRail作为测试管理工具。

2.自动化测试执行工具

自动化测试执行工具用于执行自动化测试脚本,并生成测试结果。常见的自动化测试执行工具有Jenkins,TeamCity等。在本文中,我们将使用Jenkins作为自动化测试执行工具。

3.版本控制工具

版本控制工具用于存储和管理测试脚本代码。Git是一种流行的版本控制工具。在实际项目中,可能需要在测试脚本修改后进行版本控制,以便进行跟踪和回退。

4.虚拟化环境工具

虚拟化环境工具用于创建一个模拟的测试环境,可以在其中运行自动化测试脚本。Docker是一种流行的虚拟化环境工具,它可以轻松地创建和管理虚拟容器。

5.报告与分析工具

报告与分析工具用于分析自动化测试结果,并生成可视化报告。常见的报告与分析工具包括Allure和ExtentReport。

下面,我们将详细介绍如何搭建自动化测试平台。

1.安装Jenkins

a. 下载Jenkins并安装:

  1. $ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

  2. $ sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

  3. $ sudo apt-get update

  4. $ sudo apt-get install jenkins

b. 在浏览器中打开http://localhost:8080。按照提示完成初始设置。

2.安装TestRail

a. 获取TestRail安装文件:

$ wget https://www.gurock.com/downloads/testrail/testrail-latest-ion53.zip

b. 解压缩文件并将TestRail安装到/var/www/html目录下:

  1. $ unzip testrail-latest-ion53.zip

  2. $ sudo mv testrail /var/www/html/

c. 设置TestRail的目录权限:

  1. $ sudo chmod 777 /var/www/html/testrail

  2. $ sudo chmod 777 /var/www/html/testrail/installer

d. 在浏览器中打开http://localhost/testrail,按照提示完成TestRail的安装。

3.安装Git

a. 安装Git:

$ sudo apt-get install git

b. 配置Git:

  1. $ git config --global user.name "Your Name"

  2. $ git config --global user.email "youremail@domain.com"

4.安装Docker

a. 安装Docker:

  1. $ sudo apt-get update

  2. $ sudo apt-get install docker-ce docker-ce-cli containerd.io

b. 将当前用户添加到docker组:

$ sudo usermod -aG docker $USER

c. 重新登录以使更改生效。

5.安装报告与分析工具

a. 安装Allure:

  1. $ sudo apt-add-repository ppa:qameta/allure

  2. $ sudo apt-get update

  3. $ sudo apt-get install allure

b. 安装ExtentReport:

  1. $ sudo apt-get install maven

  2. $ git clone https://github.com/extent-framework/extentreports-java.git

  3. $ cd extentreports-java/

  4. $ mvn clean install -DskipTests=true

6.配置自动化测试平台

a. 在Jenkins中安装测试插件:在Jenkins的“管理插件”页面中搜索“testng”和“junit”,并安装这些插件。

b. 创建Jenkins项目:在Jenkins主页上,单击“新建项目”,选择“自由风格软件项目”。输入项目名称并单击“OK”。

c. 配置Jenkins项目:在项目配置页面中,选择“源代码管理”,选择Git,并输入代码库的URL和凭据。然后添加下列构建步骤:

  1. cd /path/to/project

  2. mvn clean test

  3. cp target/surefire-reports/*.xml /var/lib/jenkins/test-results/

d. 配置TestRail插件:在Jenkins的“管理插件”页面中搜索“TestRail”,并安装该插件。然后,在项目配置页面中,选择“构建后操作”,选择“TestRail Publisher”,并输入TestRail服务器的URL、用户名、密码和测试计划ID。

e. 配置报告与分析工具:在项目配置页面中,选择“构建后操作”,选择“Publish Allure Report”或“Publish ExtentReports”,并输入报告文件的路径。

7.运行自动化测试

现在,我们已经完成了自动化测试平台的搭建和配置,可以运行自动化测试了。在Jenkins主页上,单击项目名称以运行测试。Jenkins将执行自动化测试脚本,并将测试结果上传到TestRail和报告与分析工具中。

总结

本文介绍了如何构建一个自动化测试平台,以便团队可以高效地开展自动化测试工作。我们使用Selenium框架编写了一个简单的自动化测试脚本,并演示了如何在Jenkins中运行该脚本。此外,我们还介绍了其他组件,如测试管理工具、版本控制工具、虚拟化环境工具和报告与分析工具。

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 低代码开发技术在农村现代化中的应用探索
  • CSS学习14[重点]--定位、边偏移、定位模式
  • CompletableFuture.allOf() + join() 和 CountDownLatch 优缺点对比
  • 【SPIE独立出版,连续2届稳定EI检索!】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024,10月25-27)
  • 《UniVS: Unified and Universal Video Segmentation with Prompts as Queries》要点提炼
  • HarmonyOS学习(十)——网络编程
  • 经验笔记:在 TypeScript 中使用 Promise
  • Unreal Fest 2024 虚幻引擎影视动画制作的普遍问题
  • 第六章 类和对象(6)
  • Unity Lua方向的面试真题详解
  • 容易中、见刊快的6本医学期刊推荐!
  • React Native 0.76版本发布
  • redis入门之redis数据库的基础操作(内含常见面试题)
  • Linux学习-模拟容器网络
  • 408:强化笔记|王道|DS|OS|CO|计网
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (三)从jvm层面了解线程的启动和停止
  • Git同步原始仓库到Fork仓库中
  • java小心机(3)| 浅析finalize()
  • js算法-归并排序(merge_sort)
  • MySQL主从复制读写分离及奇怪的问题
  • oldjun 检测网站的经验
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQLServer插入数据
  • vue 配置sass、scss全局变量
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 开源SQL-on-Hadoop系统一览
  • 普通函数和构造函数的区别
  • 深度学习入门:10门免费线上课程推荐
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 以太坊客户端Geth命令参数详解
  • 原生 js 实现移动端 Touch 滑动反弹
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 自动记录MySQL慢查询快照脚本
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • # Redis 入门到精通(一)数据类型(4)
  • #{} 和 ${}区别
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (14)Hive调优——合并小文件
  • (floyd+补集) poj 3275
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ***监测系统的构建(chkrootkit )