docker进行jenkins接口自动化测试持续集成实战

news2025/1/21 7:19:10

文章目录

      • 一、接口功能自动化测试项目源码讲解
      • 二、接口功能自动化测试运行环境配置
        • 1、下载jdk,maven,git,allure并配置对应的环境变量
        • 2、使用docker安装jenkins
        • 3、配置接口测试的运行时环境选择对应节点
        • 4、jenkins下载插件
        • 5、jenkins配置环境变量
        • 6、配置系统配置
        • 7、Jenkins中新建项目,进行配置
      • 三、自动化测试的一点小tips

一、接口功能自动化测试项目源码讲解

1、打开Intellij IDEA
2、ApiTest:测试用例类
3、allure.properties: allure report 配置
4、ilnterface.properties:server host 配置文件,复制/粘贴到{user.home} 目录(linux系统就是在root\里), 记得要配,否则跑不起来!!

5、pom.xml:maven 项目配置
6、README.md:说明
7、本地代码讲解和运行演示-Demo
8、测试接口应用: http://www.weather.com.cn/data/cityinfo/
9、接口功能:获得对应城市的天气预报
10、源码:Java
11、功能包:Rest-assured
12、请求方法:Get
13、自动化测试运行框架:JUnit5
14、项目框架 Maven
15、开发工具 Intellij ldea
16、源码位置:https://github.com/princegizh/ilnterface
在这里插入图片描述
17、项目结构(ps:jmx和py文件夹和本次的课程无关)
在这里插入图片描述
18、源码

  • 读取配置文件
    在这里插入图片描述
    在这里插入图片描述

  • 测试类
    在这里插入图片描述
    在这里插入图片描述

  • 配置文件
    在这里插入图片描述
    在这里插入图片描述

二、接口功能自动化测试运行环境配置

1、下载jdk,maven,git,allure并配置对应的环境变量
#配置java
# 下载
 wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz 
# 切换目录
cd xxx
# 解压
tar -zxvf jdk-8u201-linux-x64.tar.gz
# 配置环境变量
# 编辑/etc/profile配置文件,在文件末尾追加如下信息然后保存
JAVA_HOME=/usr/local/java/jdk1.8.0_201
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# 使其生效
source /etc/profile
# 验证是否成功
java -version
# 配置maven
wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
# 切换目录
cd xxx
# 解压
tar -zxvf apache-maven-3.8.8-bin.tar.gz
# 配置环境变量
# 编辑/etc/profile配置文件,在文件末尾追加如下信息然后保存
export MAVEN_HOME=/my_download/apache-maven-3.8.8
export MAVEN_HOME
export PATH=$PATH:MAVEN_HOME/bin;
# 使其生效
source /etc/profile
# 验证是否成功
mvn --version
# 配置allure
# 下载
wget https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.19.0/allure-commandline-2.19.0.tgz  
#解压
tar -zxvf allure-commandline-2.19.0.tgz  
# 配置环境变量
# 编辑/etc/profile配置文件,在文件末尾追加如下信息然后保存
export ALLURE_HOME=my_download/allure-2.19.0/
export PATH=$PATH:$ALLURE_HOME/bin
# 使其生效
source /etc/profile
# 查看是否成功
allure --version
2、使用docker安装jenkins

1,拉取镜像(这里建议用最新版!!不要用lts,否则安装插件时候会因为版本不够高导致很多插件下载不了,血泪教训!!!)

docker pull jenkins/jenkins:latest

2,创建docker的文件映射卷

docker volume create jenkins

3、创建实例

docker run --name myjenkins -d -p 8080:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /my_download/apache-maven-3.8.8:/my_download/apache-maven-3.8.8 -v /my_download/allure-2.19.0:/mydownload/allure-2.19.0 jenkins/jenkins:latest

查看日志:这步可以获取密码,当然也可以用下面的查看的方式找到密码

docker exce -it container_id /bin/bash
cd /var/jenkins_home/secrets
cat initialAdminPassword

5,打开浏览器,输入网址(ip:端口号)把密码输入进去,进入jenkins,然后安装各种插件和进行各种配置

3、配置接口测试的运行时环境选择对应节点

可以选择slave节点/master节点,只要对应的运行环境在该节点配好就可以(比如你跑自动化case需要java和maven环境,那必须在选择的节点进行配置),我这里只有一台机器,就没配

4、jenkins下载插件
  • jenkins下载插件:系统管理-插件管理-available plugins-搜索插件名称安装-重启(ip:port/restart进行重启)
  • 这里用到的主要有chinese,allure jenkins plugin,ssh plugin,blue ocean,Email Extension Plugin,Gitee Plugin,Git plugin,根据自己的需求来
    在这里插入图片描述
5、jenkins配置环境变量

进入系统管理-全局工具设置,配置jdk,maven,git,allure

  • jdk用的自带的
    在这里插入图片描述
  • git(一般都在这儿)
    在这里插入图片描述
  • maven
  • allure
    在这里插入图片描述
6、配置系统配置

进入系统管理-系统配置-全局属性-勾选环境变量,配置如下
在这里插入图片描述
值可以在部署的机器上输入echo $PATH得到
在这里插入图片描述

7、Jenkins中新建项目,进行配置
  • 1、构建一个自由风格的项目
    在这里插入图片描述

  • 2、选择运行节点
    在这里插入图片描述

  • 3、配置git地址以及用户名密码,我这用的http的方式
    在这里插入图片描述
    在这里插入图片描述

  • 4、添加Checkouttosub-directory
    这一步的目的是避免jenkins把代码拉到运行节点然后运行时,不会在项目的根目录去创建一些项目的文件,而导致项目结构不清晰
    在这里插入图片描述
    为什么要配置这个呢,因为在配置后这个路径就是jenkins会在机器上物理磁盘放的东西的路径(workspace/iInterface/iInterface内的全部内容),这样这一个这个会看起来更加清晰不会混乱。workspace/iInterface/iInterface就是上面的interface
    在这里插入图片描述
    在这里插入图片描述

  • 5、添加构建代码 mvn clean install
    在这里插入图片描述

  • 6、Post-build Action中添加 Allure Report
    在这里插入图片描述

  • 7、运行结果展示
    在这里插入图片描述
    在这里插入图片描述

三、自动化测试的一点小tips

自动化测试的覆盖范围要大,否则很难发现bug。这样才每次跑的时候发现case有报错,先去排查错误原因是写错了/数据配置问题/产品迭代,还是说是开发改动造成了bug。这就是自动化测试的意义,可以很大程度节约时间,更好的发现bug

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

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

相关文章

开源大语言模型(LLM)汇总(持续更新中)

随着ChatGPT的火爆,越来越多人希望在本地运行一个大语言模型。为此我维护了这个开源大语言模型汇总,跟踪每天不发的大语言模型和精调语言模型。 我将根据个模型采用的基础大模型进行分类,每个大模型下列出各派生模型。 Alpaca (Stanford) 斯…

[lesson08]函数重载分析(上)

函数重载分析(上) 自然语言中的上下文 你知道下面词汇中"洗"字的含义吗? 结论: 能和“洗”字搭配的词汇有很多“洗”字和不同的词汇搭配有不同的含义 重载的概念 重载 如果一个标识符在不同的上下文有不同的意义如: “洗”和不…

SRS 实时视频服务器搭建及使用

一、SRS 介绍 SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力&am…

Memcached 教程之 PHP 连接 Memcached 服务(十)

PHP 连接 Memcached 服务 在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务。 PHP Memcache 扩展安装 PHP Memcache 扩展包下载地址:PECL :: Package :: memcache,你可以下载最新稳定…

MySQL-排序与分页

1. 排序 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 SELECT * FROM employees;1.1 基本使用 1)使用 ORDER BY 对查询到的数据进行排序操作。 升序:ASC(ascend)降序:DESC (descend) 练习&am…

利用Idea实现Ajax登录(maven工程)

一、新建一个maven工程(不会建的小伙伴可以参考Idea引入maven工程依赖(保姆级)-CSDN博客),工程目录如图 ​​​​​​​ js文件可以上up网盘提取 链接:https://pan.baidu.com/s/1yOFtiZBWGJY64fa2tM9CYg?pwd5555 提取码&…

ChatGPT 的核心 GPT 模型:探究其生成式预训练变换架构的革新与应用潜力

GPT(Generative Pre-trained Transformer)模型是一种深度学习模型,由OpenAI于2018年首次提出,并在随后的几年中不断迭代发展,包括GPT-2、GPT-3以及最新的GPT-4。GPT模型在自然语言处理(NLP)领域…

齐护机器人方位传感器指南针罗盘陀螺仪

一、方位传感器原理及功能说明 齐护方位传感器是一款集成了三轴磁传感器芯片的方位传感器模块。适用于无人机、机器人、移动和个人手持设备中的罗盘(指南针)、导航和游戏等高精度应用。模块可以感应XYZ平面角度外,还可实现1至2的水平面角度罗…

【瑞萨RA6M3】1. 基于 vscode 搭建开发环境

基于 vscode 搭建开发环境 1. 准备2. 安装2.1. 安装瑞萨软件包2.2. 安装编译器2.3. 安装 cmake2.4. 安装 openocd2.5. 安装 ninja2.6. 安装 make 3. 生成初始代码4. 修改 cmake 脚本5. 调试准备6. 仿真 1. 准备 需要瑞萨仓库中的两个软件: MDK_Device_Packs.zipse…

故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab) 模型描述 偏最小二乘法(Partial Least Squares, PLS)是一种统计建模方法,用于建立变量之间的线性关系模型。它是对多元线性回归方法的扩展,特别适用于处理高维数据和具有多重共线性的数据集。…

element UI中设置图片的高度并支持PC和手机自适应

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、elementui 实现一个固定位置的Pagination(分页)组件 文章目录 系列文章目录…

github中git clone需要username和password问题

username:一般指你的昵称 password:一般指Creating a fine-grained personal access token 这个的获取办法如下(注意,在11步的时候,记得打开你仓库对应的一些access 权限): Note: Fine-graine…

clickhouse MPPDB数据库--新特性使用示例

clickhouse 新特性: 从clickhouse 22.3至最新的版本24.3.2.23,clickhouse在快速发展中,每个版本都增加了一些新的特性,在数据写入、查询方面都有性能加速。 本文根据clickhouse blog中的clickhouse release blog中,学…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php函数

php函数 wordpress会封装一部分函数&#xff0c;比如bloginfo该函数的作用是直接调用你设置的你的网站的名称 示例 This is our amazing custom theme <?php echo 22; function myfirstfunction(){ echo 33; echo "<p>Hello ,this is my first function</…

Node.JS多线程PromisePool之promise-pool库实现

什么是Promise Pool Map-like, concurrent promise processing for Node.js. Promise-Pool是一个用于管理并发请求的JavaScript库&#xff0c;它可以限制同时进行的请求数量&#xff0c;以避免过多的请求导致服务器压力过大。使用Promise-Pool可以方便地实现对多个异步操作的并…

基于spring boot的漫画之家系统

基于spring boot的漫画之家系统设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&…

云计算面临的威胁

目录 一、概述 二、威胁建模分析 2.1 威胁建模的概念 2.2 威胁建模起到的作用 2.3 威胁建模的流程 2.3.1 威胁建模流程图 2.3.2 威胁建模流程内容 2.3.2.1 绘制数据流图 2.3.2.2 威胁识别与分析 2.3.2.2.1 STRIDE威胁分析方法论 2.3.2.3 制定消减措施 2.3.2.3.1 消减…

注解,自定义注解和元注解

1.注解 1.1.注解概述、作用 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0…

后端灰度发布

在软件开发中&#xff0c;"灰度"通常指的是渐进式地将新功能、更新或改进引入到生产环境中&#xff0c;但只对一小部分用户或流量进行部署和测试的过程。这种方法允许开发团队在生产环境中逐步测试新功能&#xff0c;以确保其稳定性、可靠性和用户体验&#xff0c;同…

每日一题(leetcode287):寻找重复数--二分查找+思维

思路&#xff1a;看官方解答 class Solution { public:int findDuplicate(vector<int>& nums) {int nnums.size();int left1;int rightn-1;int ans-1;while(left<right){int mid(leftright)/2;int count0;for(int j0;j<n;j){if(nums[j]<mid){count;}}if(co…