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

文章目录

      • 一、接口功能自动化测试项目源码讲解
      • 二、接口功能自动化测试运行环境配置
        • 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.mzph.cn/news/794935.shtml

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

相关文章

I2C驱动实验:验证所添加的I2C设备的设备节点

一. 简介 前面一篇文章向设备树中的 I2C1控制器节点下,添加了AP3216C设备节点。文章如下: I2C驱动实验:向设备树添加 I2C设备的设备节点信息-CSDN博客 本文对设备树进行测试,确认设备节点是否成功创建好。 二. I2C驱动实验&a…

算法刷题应用知识补充--基础算法、数据结构篇

这里写目录标题 位运算&#xff08;均是拷贝运算&#xff0c;不会影响原数据&#xff0c;这点要注意&#xff09;&、|、^位运算特性细节知识补充对于n-1的理解异或来实现数字交换找到只出现一次的数据&#xff0c;其余数据出现偶数次 >> 、<<二进制中相邻的位的…

动态多目标优化:动态约束多目标优化测试集DCP1-DCP9的TruePF(提供MATLAB代码)

一、进化动态约束多目标优化测试集DCP1-DCP9 参考文献&#xff1a; [1]G. Chen, Y. Guo, Y. Wang, J. Liang, D. Gong and S. Yang, “Evolutionary Dynamic Constrained Multiobjective Optimization: Test Suite and Algorithm,” in IEEE Transactions on Evolutionary Com…

Web3:数字化社会的下一步

随着技术的不断进步和互联网的发展&#xff0c;我们正逐渐迈入一个全新的数字化社会阶段。在这个新的时代&#xff0c;Web3作为数字化社会的重要组成部分&#xff0c;将发挥着举足轻重的作用。本文将探讨Web3在数字化社会中的意义、特点以及对未来发展的影响。 1. 重新定义数字…

人脸识别:Arcface--loss+code

之前只接触过传统方法的人脸识别算法&#xff0c;本以为基于深度学习的方法会使用对比损失之类的函数进行训练&#xff0c;但是Arcface算法基于softmax进行了创新&#xff0c;本文未深究其详细的loss公式原理&#xff0c;在大致明白其方向下&#xff0c;运行了代码&#xff0c;…

06-kafka及异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高&#xff08;主从&#xff09;高&#xff08;主从&#…

spring中各种bean加载顺序

具体加载顺序按照罗列的顺序 XXXAware ApplicationContextAware、EnvironmentAware、BeanFactoryAware、BeanClassLoaderAware 顾名思义&#xff0c;用于获取对应的对象&#xff0c;需要在实体类中声明对应的对象且当前类为普通类能被注入。 InitializingBean void afterProp…

下载页面上的视频

引言&#xff1a;有些页面上的视频可以直接右键另存为或者F12检索元素找到视频地址打开后保存&#xff0c;但有些视频页面是转码后的视频&#xff0c;不能直接另存为视频格式&#xff0c;可以参考下本方法 以该页面视频为例&#xff1a;加载中...点击查看详情https://wx.vzan.c…

WindowsPowerShell安装配置Vim的折腾记录

说明 vim一直以来都被称为编辑器之神一样的存在。但用不用vim完全取决于你自己&#xff0c;但是作为一个学计算机的同学来说&#xff0c;免不了会和Linux打交道&#xff0c;而大部分的Linux操作系统都预装了vim作为编辑器&#xff0c;如果是简单的任务&#xff0c;其实vim只要会…

Java_自定义实体类的列表List<T>调用remove()失败讲解

示例1 前提&#xff1a; 新建一个主类Demo1。 需求&#xff1a; 在一个列表中有三条String的数据&#xff0c;想要使用remove(Object o)删掉其中一条。 结果&#xff1a; remove(Object o)成功把数据删掉。 示例2 前提&#xff1a; 新建一个自定义实体类DataExample和一个主…

爬取学习强国视频小示例

因为需要爬取的视频数量并不是很大&#xff0c;总共需要将131个视频下载下来&#xff0c;所以就直接去手动找找视频的地址和名称保存下来的。由于页面是动态加载的&#xff0c;所以我们无法在网站源码中直接找到视频的超链接。设想是可以用Selenium模拟浏览器点击进行动态加载获…

uni-app如何实现高性能

这篇文章主要讲解uni-app如何实现高性能的问题&#xff1f; 什么是uni-app&#xff1f; 简单说一下什么是uni-app&#xff0c;uni-app是继承自vue.js&#xff0c;对vue做了轻度定制&#xff0c;并且实现了完整的组件化开发&#xff0c;并且支持多端发布的一种架构&#xff0c…

电脑上音频太多,播放速度又不一致,如何批量调节音频播放速度?

批量调节音频速度是现代音频处理中的一个重要环节&#xff0c;尤其在音乐制作、电影剪辑、有声书制作等领域&#xff0c;它能够帮助制作者快速高效地调整音频的播放速度&#xff0c;从而满足特定的制作需求。本文将详细介绍批量调节音频速度的方法、技巧和注意事项&#xff0c;…

移动Web学习04-移动端订单结算页PC端个人中心页面

5、电商结算页面案例 css body{background-color: #F2F2F2; } * {box-sizing: border-box;margin: 0;padding: 0; }.main{padding: 12px 11px 80px; }.pay{display: flex;height: 80px;background-color: #fff;bottom: 0;width: 100%;border-top: 1px solid #ededed;position:…

04-自媒体文章-自动审核

自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后&#xff0c;开始审核文章 2 审核的主要是审核文章的内容&#xff08;文本内容和图片&#xff09; 3 借助第三方提供的接口审核文本 4 借助第三方提供的接口审核图片&#xff0c;由于图片存储到minIO中&…

JAVA毕业设计132—基于Java+Springboot+Vue的自习室座位预约小程序管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的自习室座位预约小程序管理系统(源代码数据库)132 一、系统介绍 本项目前后端分离带小程序&#xff0c;分为管理员、用户两种角色 1、用户&#xff1a; 注…

【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

多个不同的GAV-classifier依赖冲突&#xff0c;引起NoSuchMethodError Maven依赖的三坐标体系GAV(G-groupId&#xff0c;A-artifactId&#xff0c;V-version) classifier通常用于区分从同一POM构建的具有不同内容的构件物&#xff08;artifact&#xff09;。它是可选的&#xf…

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者&#xff1f; 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一&#xff0c;造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…

​​​​​​​【人工智能】手写数字识别

手写数字识别 实验背景 数据集介绍 MNIST数据集包含了一系列的手写数字图像&#xff0c;包括0到9的数字。每张图像都是灰度图像&#xff0c;尺寸为28x28像素。数据集共包含60000张训练图像和10000张测试图像。 MNIST数据集的目标是通过训练一个模型&#xff0c;使其能够正确地识…

彩虹聚合DNS管理系统v1.0全新发布

聚合DNS管理系统&#xff08;https://github.com/netcccyun/dnsmgr&#xff09;可以实现在一个网站内管理多个平台的域名解析&#xff0c;目前已支持的域名平台有&#xff1a;阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户&#xff0c;每个用户可分配不同的…