一种自动化测试持续集成方案

简介: 1. 背景介绍当前项目是Web应用,采用的是前后台分离的设计思想。后台通过RESTful API对外提供服务。因此在测试的时候,也需要同时对前台页面和后台API进行独立测试。

1. 背景介绍

当前项目是Web应用,采用的是前后台分离的设计思想。后台通过RESTful API对外提供服务。因此在测试的时候,也需要同时对前台页面和后台API进行独立测试。考虑到大量的API测试和页面功能测试,因此不可避免地需要进行自动化以加快项目的回归测试时间,减少人的工作量。

2. 测试目的

3. 方案设计

3.1 技术选型

由于我们在Robot Framework (RF)框架上有一些技术积累,因此在自动化框架选型上,我们选择RF作为自动化测试的核心底层框架。持续集成平台我们选择最流行的Jenkins来作为持续集成与调度平台。
同时,我们也选择postman的命令行工具newman, jmeter等作为我们的辅助测试框架,以应对不同的测试需求。我们整体的技术选型如下表所示:

img_7ff6e6b3afe2b5a12ba6867348096c56.png
newman in docker
编号 平台 介绍 备注
1 jenkins 开源的持续集成平台 整个自动化测试平台的核心
2 robot framework 开源的自动化测试框架 测试用例执行的核心
3 Selenium2Library RF框架下的Web测试库 web测试用例依赖库
4 requestsLibrary RF框架下的API测试库 api测试用例依赖库
5 newman postman的命令行工具,用于REST API测试 api测试用例执行工具
6 jemter 通用的接口测试工具 api测试用例执行工具
7 docker 一个开源的应用容器引擎 用于创建测试环境
8 gogs 开源的git web服务器 用于管理自动化测试用例

3.2 测试平台设计

这里,我们通过docker容器技术,封装了相关的测试环境,使得测试环境随用随起,用完即销毁,不污染我们测试机本身的系统环境。同时,也不需要我们在测试机上安装不同的测试工具了,通过docker,我们可以同时在测试机上启动多个容器来运行不同的测试任务。


img_76ece134cbb9ce7dda33775ca38d9e95.png
AutoTest Platform

这里是相关的测试环境docker镜像地址。大家可以自己pull下来运行。

镜像地址 介绍 备注
wywincl/docker-jmeter jmeter镜像,提供jemter执行环境
wywincl/robotframework Robot Framework镜像,提供RF执行环境, 支持Web与API测试,内置了Selenium2Library和RequestsLibrary库
postman/newman_ubuntu1404 newman镜像,提供了newman执行环境

样例1, 运行一个robotframework容器。

docker run -it --rm -v /path/robot-content:/etc/robot wywincl/robotframework [options] data_sources

样例2, 运行一个newman容器。

docker run -v ${WORKSPACE}:/etc/newman postman/newman_ubuntu1404 run "testcases/smoke_test/restapi_smoke_test/AMS_RESTful_API_SMOKE_TEST.json" -r "cli,junit" --reporter-junit-export

详细的使用介绍,请大家参考相关工具的使用指南。

目录
相关文章
|
1天前
|
jenkins 测试技术 持续交付
探索软件测试中的自动化与持续集成
本文深入探讨了软件测试领域中自动化测试和持续集成的融合应用,分析了这种结合如何提升软件开发的效率和质量。通过具体案例分析,展示了自动化测试和持续集成在软件开发生命周期中的关键作用及其实施策略。
|
2天前
|
监控 测试技术 持续交付
自动化和持续集成在软件开发中各自扮演什么角色?
自动化和持续集成在软件开发中各自扮演什么角色?
|
8天前
|
jenkins Java 持续交付
软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分
随着软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分。本文以电商公司为例,介绍如何使用 Jenkins 自动发布 Java 代码,包括安装配置、构建脚本编写及自动化部署等步骤,帮助团队实现高效稳定的软件交付。
19 3
|
11天前
|
监控 jenkins 测试技术
探索软件测试的新篇章:自动化与持续集成
【10月更文挑战第25天】在数字化时代的浪潮中,软件已成为驱动世界的核心力量。然而,随着软件复杂性的增加,传统的测试方法已无法满足快速迭代和高质量交付的需求。本文将探讨如何通过自动化测试和持续集成(CI)来提升软件开发的效率和质量,同时确保产品的稳定性和可靠性。我们将从自动化测试的基础出发,逐步深入到持续集成的实践,并展示如何通过实际案例实现这一转变。
|
9天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
16 1
|
11天前
|
jenkins 测试技术 持续交付
探索软件测试中的自动化与持续集成
【10月更文挑战第25天】在软件开发的海洋中,自动化测试和持续集成(CI)是引领航船穿越波涛的灯塔。本文将带你了解如何通过搭建自动化测试框架和实施持续集成策略来提高软件质量和开发效率。我们将以一个实际的代码示例为起点,逐步深入讲解如何整合自动化测试到你的CI/CD流程中。
|
11天前
|
jenkins 测试技术 持续交付
探索软件测试的新篇章:自动化与持续集成的融合
【10月更文挑战第25天】在软件开发的世界里,质量是王道。本文将带你领略如何通过自动化测试和持续集成(CI)的结合,提升软件交付的速度与质量,确保每一次代码提交都是一次胜利的宣言。
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
52 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
219 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
233 3
快速上手|HTTP 接口功能自动化测试

热门文章

最新文章

下一篇
无影云桌面