0


dockers+Jenkins+git+自动化框架

1.我现在用python编写了一个自动化测试的框架,但是这个自动化框架仅是部署在我的本地电脑中,在实际的公司的运用场景中,自动化测试框架应该是部署在云服务器上,例如部署在Linux服务器上,然后把自动化框架部署在Jenkins上,并且用钩子和git链接,只要有人提交代码Jenkins就会自动运行我写好的自动化框架运行里面的测试用例,并且通过dockers来管理Jenkins的启动和关闭?

将你的自动化测试框架部署到云服务器并集成到 CI/CD 流程(如 Jenkins)中是一个重要的步骤。

  1. 准备云服务器
  2. 安装 Docker 和 Jenkins
  3. 创建 Jenkins Pipeline
  4. Git 集成
  5. 运行自动化测试框架

1. 准备云服务器

首先,你需要一台云服务器。可以选择 AWS、Azure、Google Cloud 或其他云服务提供商。这里以 Linux 服务器为例:

  • 启动云服务器:- 选择合适的实例类型(根据你的测试需求)。- 确保你为服务器配置了足够的存储和性能。
  • SSH 连接到服务器
ssh username@your-server-ip

2. 安装 Docker 和 Jenkins

安装 Docker

在你的 Linux 服务器上,首先安装 Docker:

# 更新包索引
sudo apt-get update

# 安装必要的包,以允许 apt 使用 HTTPS
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 的稳定版本库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 更新包索引
sudo apt-get update

# 安装 Docker
sudo apt-get install docker-ce

# 验证 Docker 是否安装成功
sudo docker --version
安装 Jenkins

接下来,安装 Jenkins。可以使用 Docker 来简化安装过程。

# 拉取 Jenkins 镜像
sudo docker pull jenkins/jenkins:lts

# 运行 Jenkins 实例
sudo docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
  • 这将 Jenkins 绑定到 8080 端口,你可以通过 http://your-server-ip:8080 访问 Jenkins。

3. 创建 Jenkins Pipeline

初次设置 Jenkins
  1. 访问 Jenkins:- 打开浏览器,访问 http://your-server-ip:8080。- 根据提示输入初始管理员密码(可以通过运行 sudo docker exec -it <container_id> cat /var/jenkins_home/secrets/initialAdminPassword 获取)。
  2. 安装推荐的插件
  3. 创建一个新的 Pipeline 项目:- 在 Jenkins 主界面上,点击 新建任务,输入项目名称,选择 Pipeline 类型,点击确定。
编辑 Pipeline 代码

在 Pipeline 的配置页面中,选择

Pipeline

的定义方式为

Pipeline script

,然后在脚本框中输入如下:

pipeline {
    agent {
        docker {
            image 'python:3.8'  // 使用 Python Docker 镜像
            args '-v /var/run/docker.sock:/var/run/docker.sock'  // 允许 Docker 在 Docker 中运行
        }
    }
    stages {
        stage('Checkout') {
            steps {
                checkout scm  // 从 Git 仓库中检出代码
            }
        }
        stage('Install Dependencies') {
            steps {
                sh 'pip install -r requirements.txt'  // 安装依赖
            }
        }
        stage('Run Tests') {
            steps {
                sh 'pytest'  // 运行自动化测试
            }
        }
    }
}

4. Git 集成

配置 Git 仓库
  1. 在 Jenkins 中配置你的 Git 仓库:- 在 Pipeline 项目的配置页面,找到 源代码管理,选择 Git,并填写你的仓库 URL。
  2. 配置事件触发器:- 找到 构建触发器,选择 GitHub hook trigger for GITScm polling 或者其他适合的选项,以便在代码提交时自动触发构建。
设置 Webhook(如果是 GitHub)
  1. 在 GitHub 仓库的设置中,选择 Webhooks
  2. 添加一个新的 Webhook,指向 http://your-server-ip:8080/github-webhook/,选择 application/json

运行自动化测试框架

测试流程
  • 现在,当你向 Git 仓库提交代码时,Jenkins 会自动触发构建,拉取最新代码,并运行你的自动化测试框架。
  • 你可以在 Jenkins 的构建历史中查看每次构建的结果和日志。

总结

通过以上步骤,你应该能够将你的 Python 自动化测试框架成功部署到云服务器上,并通过 Jenkins 实现 CI/CD 流程。你可以根据具体需求进一步完善这个流程,例如添加通知、测试报告、环境配置等。

实际的部署Linux上部署Jenkins:

首先Linux的网络配置

情况说明我的虚拟机使用的是Linux系统,并且是net的网络模式,所以容易遇见一个问题就是网络配置的问题,如果你是使用的net模式的话,那你就是VM8这个就是你的虚拟机网卡了。

这里的网卡的设置,一定要设置在同一个网段下这里以192.168.9为例子。

打开终端,输入命令: vi /etc/sysconfig/network-scripts/ifcfg-ens33,这里设置虚拟机的IP和网关的网段要保持一致,记得网关要和外面的网关保持一致。

上面的配置完成之后,要是还是无法连接外网,则可以开始排查问题:

问题一:网关问题

打开终端输入命令: route -n查看路由和网关,可以看见Gateway下,我们设置的网关地址。

直接ping这个网关,显示正常ping通,则排除问题。

问题二,网关的DNS地址不正确是乱码

终端输入命令:cat /etc/resolv.conf 输出结果显示DNS地址为乱码,则修改这个配置文件。

终端输入命令: vim /etc/resolv.conf,打开文件,点击i插入,修改为以下的内容:修改完wq保存退出,这个时候再ping baidu.com,应该就正常了。

Linux安装Java17:

为什么要安装Java的jdk17呢,因为Jenkins就是Java打的war包,所以对应的Jenkins就要有对应的war包,因为我下载的是最新版的Jenkins的war包。

还有一个要注意的点就是这篇文章是直接在orcal的官方地址下载的,所以我们正常下载的时候速度很慢,所以需要先需要挂个梯子,然后再进行下载就很快了。

很多教程都是通过命令行去下载,我不建议,直接在主机下载完成通过Xshell的方式把下载好的Java的jdk压缩包传输上去就可以了。 看这篇就可以了。

Linux(CentOS Stream 9) 安装 Java JDK 17 (源码方式安装)【图文详细教程】_linux java17-CSDN博客

Linux安装Jenkins:

这是Jenkins的下载地址,下一个Java17对应的Jenkins版本,通过Xshell的方式直接上传到Linux虚拟机上就可以了。同样的如果上传之后,没办法查看到该war包,请查看你自己编写的,Xshell篇。

https://jenkins.io/zh/download/

标签: jenkins git 自动化

本文转载自: https://blog.csdn.net/weixin_63213632/article/details/143721665
版权归原作者 Zpb185 所有, 如有侵权,请联系我们删除。

“dockers+Jenkins+git+自动化框架”的评论:

还没有评论