此贴为Jenkins 问题汇总,大家可以把解决过的问题,抑或碰到的问题回复到下面。
为了浏览和搜索方便,希望大家能够按照楼上格式来写自己的问题。
问题描述:
- 环境:
- 问题复述:
此贴为Jenkins 问题汇总,大家可以把解决过的问题,抑或碰到的问题回复到下面。
为了浏览和搜索方便,希望大家能够按照楼上格式来写自己的问题。
按照 jenkins 官网的文档(jenkins官网文档地址)安装 docker 版 jenkins后,docker 镜像里的环境变量配置的是 jenkins官方镜像,网络很慢,插件下载不下来,网上搜到清华大学 jenkins 镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json并配置到 jenkins 的 系统管理>插件管理>高级>升级站点 后,插件仍然无法下载,日志显示,使用的还是 docker 镜像里的环境变量配置的 jenkins官方镜像地址。
在 jenkins 页面上配置成 jenkins中文社区的镜像地址后,还是不行,提示 signature 报错信息。
见问题描述。
不知道什么原因。
找到 jenkins 中文社区的一个贴子(https://community.jenkins-zh.cn/t/jenkins/26)后,按照建议使用 jenkins 的国内版 docker镜像即可。
以下为我在 powershell 上的命令执行过程(-v C:\Users\shuaidi\docker-volumes\jenkins:/var/jenkins_home 是将我本地 C 盘的目录挂载到镜像上,本地C盘的目录内容自动与容器里的目录保持同步,如果使用,需要修改成自己的本地目录):
docker run -u root -v C:\Users\shuaidi\docker-volumes\jenkins:/var/jenkins_home -p 8080:8080 jenkinszh/jenkins-zh:lts
PS:
发现 咱们霍格沃兹测试学院 是 jenkins 中文社区上的赞助商耶~
尝试了两种安装部署方式,一个是本地实验,一个是服务器实际使用:
在本地 windows 10 的 docker desktop 上部署
使用 jenkins 中文社区的镜像,汉化的比较好,插件镜像直接配置好的 jenkins 中文社区的镜像,不用自己再改插件下载地址的配置。
docker 命令如下:
docker run -u root -v C:\Users\xxxx\docker-volumes\jenkins:/var/jenkins_home -p 8080:8080 jenkinszh/jenkins-zh:lts
在 linux 服务器(公司内网)上部署
代理尝试了下 ccproxy,配置简单,但是,由于内网安全防护,第二天早上发现启动不了了。
找到一个 python 的轻量级代理工具,没被禁,proxy.py,使用 pip 安装后,根据pypi页面的说明启动后,就是一个代理服务器。
pip install proxy.py
安装配置各种插件:
接口自动化的项目是一个 python 项目,使用的 allure-pytest 生成 allure-results 数据文件。
由于 jenkins 服务器上需要执行 pytest 命令,又由于自己使用 python 官网的 python 源码 build python安装包比较困难,内网 yum 源资源少,之前 build 时出过问题,少 ssl 等相关的包好像是。所以,选择在清华镜像源下载 miniconda 的 linux rpm 安装包进行安装。
在 linux 安装 miniconda 给 jenkins 用时,有几点需要注意:
source ~/.bashrc
conda activate xxx_env
python 接口自动化项目的根目录需要有 conftest.py 文件,只要是这个文件名就行,里边可以什么都不写。项目根目录有这个文件,运行 pytest 命令后,才能识别到 import 的自定义 module。
这个问题最终通过修改jenkins的allure插件里的 https://github.com/jenkinsci/allure-plugin/blob/master/src/main/java/ru/yandex/qatools/allure/jenkins/AllureReportPublisher.java
将上述java文件里的 rootUrl 改为自己创建的代理 jenkins allure url 并自动登录jenkins的 spring boot 应用的 ip端口:
private void addExecutorInfo(@Nonnull List<FilePath> resultsPaths, @Nonnull Run<?, ?> run)
throws IOException, InterruptedException {
final String rootUrl = Jenkins.getInstance().getRootUrl();
上述代码修改后,将编译后的 .class 文件替换到 jenkins allure插件的 jar 包里。
allure生成测试报告时,会生成一些 executor history 等文件,修改上述路径后,executor history 等文件里的url就会变成自己在代码里写的 ip和端口了。
感觉你这些总结可以另外发帖啦
你好,请问这个具体是如何实现的?有样例吗?
第一次搞这个,真是一脸懵逼。
问题描述:jenkins+allure 报告生成控制台报错,点击jenkins的Allure Report报404,实际文件在目录已经生成
报错信息:
实际文件已生成
原因以及解决方式(没有可以写无):还没有解决
原因:
解决办法: 求助老师怎么解决
你的报错应该是在生成测试报告这一步 是不是你没有配置allure执行文件的位置?
你说生成的是测试结果 这个是用来生成测试报告的 而不是生成出来的测试报告
看看你系统设置里 allure的位置配了吗
不要让它自动下载安装 自己先装好一个再把位置添加进去
成功了。 谢谢老师!!
我已经在虚拟机里启动了jenkins,且是第二次启动,配置文件已配置好,但是在浏览器页面里输入我127.0.0.1:8080这个却不能显示我的jenkins网页,需要再配置?
你设置的是通过ssh的方式让jenkins连接你的本机电脑,但是你没有给它设置连接需要的身份验证信息。所以没办法连接
这部分步骤jenkins课上应该有讲到,远程连接你的电脑肯定是需要一个安全验证的 不管是通过账号密码还是公钥 都需要进行对应的验证信息配置
视频讲的是连接远程服务器,现在相当于连接宿主机,也需要吗?本机的登陆及密码是什么呢?还需要配置本机的ssh吗,这里不太懂
对于docker来说,你本地和远程服务器并没有太大区别