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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题

BUG 版本:element-plus 2.6.1 浏览器:360极速浏览器22.1 (Chromium内核) 组件:el-table组件 问题:在头部/尾部浮动加上斑马条纹后,横向滚动存在文字穿透的问题。具体如图: 白色背景行的文字&#xff0c…

【关于窗口移动求和的两种计算方法】

窗口移动计算方法 例子方法1方法2运行结果: 例子 在很多算法中都会涉及到窗口滑动,比如基于新息序列更新的自适应卡尔曼滤波器算法中便会使用到。 已知一个数列:OCV [1;2;3;4;5;6;7;8;9;10;11;12;13;14;15],定义窗口长度为5,每次…

Python自带的集成开发和学习环境IDLE 中安装工具包的pip文件修复和重置解决方法————以win 7系统下Python 3.8 32-bit为例

Python自带的集成开发和学习环境IDLE 中安装工具包的pip文件修复和重置解决方法————以win 7系统下Python 3.8 32-bit为例 目录 Python自带的集成开发和学习环境IDLE 中安装工具包的pip文件修复和重置解决方法————以win 7系统下Python 3.8 32-bit为例一、IDLE简介和特点…

软考111-上午题-【计算机网络】-URL和DNS

一、URL解析 org:各类组织结构(非盈利团队) 1-1、顶级域 顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如:www.baidu.com这个域名中,顶级域是.com(或.COM&#xff…

2024/4/5 ACM格式练习

一、知识点: (1)行数不固定:用Scanf的err返回值判断是否读到EOF。 (2)每行数据个数不固定:一个一个读数据和它后面的字符,判断后面的字符是否是换行符。如果是就说明读完了一行数据…

重读Java设计模式: 桥接模式详解

引言 在软件开发中,经常会遇到需要在抽象与实现之间建立连接的情况。当系统需要支持多个维度的变化时,使用传统的继承方式往往会导致类爆炸和耦合度增加的问题。为了解决这一问题,我们可以使用桥接模式。桥接模式是一种结构型设计模式&#…

计算机网络—HTTP协议:深入解析与应用实践

​ 🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:ヒステリックナイトガール 1:03━━━━━━️💟──────── 5:06 🔄 ◀️ ⏸ ▶️ ☰…

vue 实现的h5 页面,如何设置页面中的 title

修改页面中的title 公共修改方式在App.vue 中: created() {document.title "测试标题"; },单个页面修改,就在单个页面编写就ok

二百二十九、离线数仓——离线数仓Hive从Kafka、MySQL到ClickHouse的完整开发流程

一、目的 为了整理离线数仓开发的全流程,算是温故知新吧 离线数仓的数据源是Kafka和MySQL数据库,Kafka存业务数据,MySQL存维度数据 采集工具是Kettle和Flume,Flume采集Kafka数据,Kettle采集MySQL数据 离线数仓是Hi…

JVM专题——垃圾回收

本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/jvm-garbage-collection.html 🚀 基础(上) → 🚀 基础(中) → 🚀基础(下&…

2024-04-05 问AI: 介绍一下深度学习中的Leaky ReLU函数

文心一言 Leaky ReLU(Leaky Rectified Linear Unit)函数是深度学习领域中的一种激活函数,主要用于解决ReLU(Rectified Linear Unit)函数在负值区域为零的问题。ReLU函数在输入为正时保持原样,而在输入为负…

(学习日记)2024.04.07:UCOSIII第三十五节:互斥量实验

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)

本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么? 在我们这个牛客论坛项目,验证码分为两部分 给用户看的是图片,用户根据图片上显示的…

跨境电商独立站是什么?为什么要做独立站?

跨境电商独立站就是跨境电商自行搭建的销售网站,服务器、域名都是自主购买的,并由跨境电商独立运营与营销推广。 近些年来,各类第三方电商平台虽然流量大,但是随着进驻电商数量的增加,流量竞争也愈发激烈,…

基于顺序表实现通讯管理系统!(有完整源码!)

​​​​​​​ 个人主页:秋风起,再归来~ 文章专栏:C语言实战项目 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安!​​​​​​​ 目录 1、实现思路 ​…

C语言中strlen函数的实现

C语言中strlen函数的实现 为了便于和strlen函数区别,以下命令为_strlen。 描述:实现strlen,获取字符串的长度,函数原型如下: size_t strlen(const char *str);_strlen实现: size_t _strlen(const char*…

彩虹聚合DNS管理系统,附带系统搭建教程

聚合DNS管理系统,可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。 本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口&#xff0…

武汉星起航:跨境电商领域的领航者,助力全球贸易新篇章

自2017年以来,武汉星起航一直专注于亚马逊自营店铺,积累了宝贵的经验。2020年正式成立后,公司以跨境电商为核心,致力于为合作伙伴提供深入的合作模式。武汉星起航凭借其卓越的服务和实战经验,已成功助力众多创业者实现…

基于SpringBoot的“智慧外贸平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“智慧外贸平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 平台首页界面图 商品信息界面图 …

Java8 进阶

Java8 进阶 文章目录 Java8 进阶什么是函数式接口&#xff1f;public interface Supplierpublic interface Consumerpublic interface Predicatepublic interface FunctionJava8 特性总结&#xff1a;一、Function<T, R>二、Consumer<T>三、Supplier<T>四、P…