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

news2024/9/24 13:16:45
前言

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

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

选择适合的自动化测试框架是非常重要的。在考虑选择框架之前,需要评估项目要求和技术能力,以选择最佳框架。目前比较流行的自动化测试框架有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中运行该脚本。此外,我们还介绍了其他组件,如测试管理工具、版本控制工具、虚拟化环境工具和报告与分析工具。

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

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

软件测试面试文档

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

 

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

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

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

相关文章

基于STC12C5A60S2单片机的LED汉字显示系统的设计

本设计基于单片机的LED汉字显示装置,该设计以STC12C5A60S2单片机为核心,利用最小系统和多个模块完成设计,包括点阵驱动模块、时钟模块、串口通信模块、红外线接收模块以及LED点阵屏。其中,点阵驱动模块采用74HC245芯片设计完成&am…

基于Python的电影推荐系统设计与实现---附源码80129

摘要 本项目旨在基于Python设计和实现一个电影推荐系统,旨在为用户提供个性化的电影推荐服务。通过分析用户的观影历史、评分和偏好等数据,系统将利用推荐算法为用户推荐符合其口味的电影。该系统将结合Python编程语言和数据分析技术,实现智能…

让AI给你写代码(10.2)具备调用本地库能力的AI小助手代码资源及简单介绍

接上一篇让AI给你写代码(10.1): 按接口编程的思想,统一利用内部和外部的接口,逐步扩展和提升AI编程能力 这篇我们将对照需要解决的问题,比较详细介绍一下AI小助手相关代码架构、实体,相关方法和工具。 对照10.1 新版AI小助手的需要做的流程如下: 与10.1流程图基本一致…

Docker部署nginx容器无法访问80端口

问题说明 在阿里云ECS服务器上部署一台CentOS服务器,然后在里面安装了docker服务。用docker部署了nginx,开启docker中的nginx服务,映射宿主机端口80 把阿里云服务器上面的安全组放开了80端口 但是还是无法访问nginx的80web界面 问题分析 查…

油猴脚本安装,3种安装方法

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

并发编程:AQS(上)

一、AQS 是什么? AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。 AQS 就是一个抽象类,主要用来构建锁和同步器。 public abstract class AbstractQueuedSynch…

怎么抓住威士忌蓝海市场?

​前些天和朋友吃饭,聊起来威士忌。 朋友说,这个威士忌啊,最近几年增值特别快,甚至超过了黄金、名表、艺术品、红酒这些经典的投资品类。而且存放得越久,升值的幅度就越大。 再加上,中国的威士忌市场现在…

3GPP NTN定义了哪些band?

卫星频段主要包括以下几种: L波段(1–2 GHz):主要用于移动卫星通信、导航系统和无线电测绘。例如,全球定位系统 (GPS) 运营商以及卫星移动电话,如 Iridium和 Inmarsat提供海上、陆地和空中通信。 S波段(2–4 GHz):广泛…

【C++ Primer Plus习题】13.3

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <string> #inc…

[Unity]如何让选择区域(照射范围)内的物体实时高亮

前言 最近希望在Unity里实现这样一个功能&#xff1a; 黄色半透明部分是一个手电筒&#xff0c;我希望手电筒范围内的小球会高亮轮廓&#xff0c;且手电筒移出去后小球会恢复原来的样子&#xff1a; 一开始我把整个问题想的太复杂了&#xff0c;想着在Update()函数里暴力检…

使用Python自动抓取亚马逊网站商品信息

全量数据抓取不现实&#xff0c;但可以自动化、小批量采集亚马逊数据&#xff0c;现在可用的工具也非常多&#xff0c;包括Python以及一些专门的爬虫软件&#xff0c;我用过几个比较好入手的&#xff0c;像web scraper、八爪鱼、亮数据。 比如亮数据爬虫&#xff0c;它提供数据…

408:强化笔记|王道|DS|OS|CO|计网

目录 DS 数据结构算法题一、快速排序二、二路归并排序三、链表(2.3课后习题)四、二叉树五、图应用题 OS 操作系统第二章 进程与线程零、大观一、PV操作 第三章 内存管理一、内存管理大题 CO 计算机组成原理第三章 存储系统一、Cache大题二、TLB大题 第二章 数据的表示和运算第四…

Nginx之日志切割,正反代理,HTTPS配置

1 nginx日志切割 1.1 日志配置 在./configure --prefixpath指定的path中切换进去&#xff0c;找到log文件夹&#xff0c;进去后找到都是对应的日志文件 其中的nginx.pid是当前nginx的进程号&#xff0c;当使用ps -ef | grep nginx获得就是这个nginx.pid的值 在nginx.conf中…

安全测试:全面指南!

引言 随着互联网技术的快速发展&#xff0c;网络安全威胁日益增多。企业不仅需要保护其数据资产免受外部攻击&#xff0c;还需要确保内部系统的安全性。安全测试作为软件开发生命周期中的关键环节&#xff0c;旨在识别潜在的安全漏洞和风险点&#xff0c;从而提高产品的整体安…

Return arguments from function calling with OpenAI API when streaming?

题意&#xff1a;在使用OpenAI API进行流式传输时&#xff0c;如何返回函数调用的参数&#xff1f; 问题背景&#xff1a; Ive made a simple OpenAI API example with function calling. Im only using function calling to format the response, Im not calling multiple fu…

沪农商行半年报“双正增”:分红率提升,业绩增速却放缓明显

《港湾商业观察》施子夫 王璐 虽然上半年业绩增速上有所放缓&#xff0c;但沪农商行(601825.SH)33%的分红率至少对投资者来说无疑是个好消息。 今年上半年&#xff08;报告期内&#xff09;&#xff0c;沪农商行实现营业收入139.17亿元&#xff0c;同比增长0.23%&#xff1b…

TikTok运营需要的独立IP如何获取?

TikTok作为当下炙手可热的社交媒体平台&#xff0c;吸引了众多个人创作者和企业进驻。在进行TikTok运营时&#xff0c;许多经验丰富的用户都倾向于选择独立IP。那么&#xff0c;TikTok运营为什么需要独立IP&#xff1f;又该如何获取呢&#xff1f;本文将详细为您解答这些问题。…

HivisionIDPhotos

在服务器Ubuntu22.04系统下&#xff0c;HivisionIDPhotos的部署 一、安装环境&#xff1a;ubuntu基本环境配置1.更新包列表&#xff1a;2. 安装GPU驱动程序3.查看显卡信息4.下载并安装 CUDA 12.3 二、安装miniconda环境1. 下载miniconda32. 安装miniconda33. 打开用户环境编辑页…

英文站外链如何建设?

在建设英文站外链时&#xff0c;关键在于高质量和低质量&#xff08;数量多&#xff09;链接的合理搭配。几百条外链想提升网站是不现实的&#xff0c;所以数量是绝对的&#xff0c;当然&#xff0c;更重要的是&#xff0c;这些外链能够为你的网站SEO带来实际的提升 GPB外链就是…

Vue学习:计算属性Computed

计算属性可以实时监听 data节点中数据的变化&#xff0c;并 return 一个计算后的新值&#xff0c;供组件渲染 DOM 时使用&#xff0c;计算属性需要以 function 函数的形式声明到组件的 computed 节点中。 计算属性的使用注意点&#xff1a; &#xff08;1&#xff09;计算属性…