问题1
修改配置文件,有挂载就在容器内部修改,没有的话就修改宿主机中的文件
1. 编辑配置文件(养成习惯,修改前先备份)
cd /etc/gitlab
cp gitlab.rb gitlab.rbbak
vi gitlab.rb
2. 配置文件中调整参数如下:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
puma['worker_memory_limit_min'] = "100 * 1 << 20"
puma['worker_memory_limit_max'] = "250 * 1 << 20"
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false
3. 应用更改后的配置、重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
问题2
测试用例中既有api又有ui,但是在用例中可能会遇到有些python的库只适用于windows系统),实际操作过程中我们运行自动化的环境是linux系统,这个问题主要有两个方向去规避:1.jenkins有提供节点管理,添加一个从节点(windows系统)2.修改代码使用linux和windows都通用的库去实现自动化
这种主要针对的是第一种方式提供解决方法
1.配置全局变量jdk和allure(windows系统)(路径只需要选到bin目录的上一层就够了)
2.jenkins系统管理>>节点管理>>新建节点
修改下图标记的地方,工具选择已配置的全局变量相对应的就行了
端口可以不填,默认为50000(jenkins容器要开放50000端口)
如何开放已创建容器的端口参照这篇文章
运行中的Docker容器添加映射端口_954L的博客-CSDN博客_docker新增端口映射
配置完节点管理展示
3.点击左侧节点名称,进入相应节点的管理界面,下载代理的jar包(agent.jar)丢到本地
4.jar所在目录敲下cmd进入命令行模式
copy一下jenkins界面的命令
又看到connected就表示连接成功了
3.jenkins流水线风格集成钉钉,构建通知
Jenkinsfile脚本如下:
pipeline { agent {node('xxxx')} stages { stage('UI测试'){ steps { //下载代码文件 checkout scm echo '执行UI测试用例' script{ try { bat "pytest -vs --alluredir=report/temp --clean-alluredir" bat "copy report\\environment.properties report\\temp" } catch(Exception err) { println(err);}} }} // stage('api测试'){ // steps { // // echo "执行api测试用例" // script{ // try{ // bat "pytest test_case/api -vs --alluredir=report/temp"} // catch(Exception err){println(err);}} // // // sh "cp ./report/environment.properties ./allure-report/environment.properties" // }} stage('测试报告'){ steps { echo '生成测试报告' // allure includeProperties: false, jdk: '',results: [[path: 'report/temp']] allure commandline: 'allure_win', jdk: 'java_win', results: [[path: 'report/temp']] }} } post { success { dingtalk ( robot: "111", type:'MARKDOWN', atAll: false, title: "${env.JOB_NAME}", messageUrl: '${env.JOB_URL}', text: [ "### [${env.JOB_NAME}](${env.JOB_URL}) ", '---', "- 构建编号:${env.BUILD_NUMBER}", "- 构建节点:${env.NODE_NAME}", "- 构建结果:${currentBuild.result}", "- 持续时间:${currentBuild.durationString}".split('and counting')[0], "- 执行人:${currentBuild.buildCauses.shortDescription}", "- 日志:${env.BUILD_URL}console", "- 测试报告:${env.BUILD_URL}allure" ] ) } failure { dingtalk ( robot: "111", type:'MARKDOWN', atAll: false, title: "${env.JOB_NAME}", messageUrl: '${env.JOB_URL}', text: [ "### [${env.JOB_NAME}](${env.JOB_URL}) ", '---', "- 构建编号:${env.BUILD_NUMBER}", "- 构建节点:${env.NODE_NAME}", "- 构建结果:${currentBuild.result}", "- 持续时间:${currentBuild.durationString}".split('and counting')[0], "- 执行人:${currentBuild.buildCauses.shortDescription}", "- 日志:${env.BUILD_URL}console", ] ) } unstable { dingtalk ( robot: "111", type:'MARKDOWN', atAll: false, title: "${env.JOB_NAME}", messageUrl: '${env.JOB_URL}', text: [ "### [${env.JOB_NAME}](${env.JOB_URL}) ", '---', "- 构建编号:${env.BUILD_NUMBER}", "- 构建节点:${env.NODE_NAME}", "- 构建结果:${currentBuild.result}", "- 持续时间:${currentBuild.durationString}".split('and counting')[0], "- 执行人:${currentBuild.buildCauses.shortDescription}", "- 日志:${env.BUILD_URL}console", "- 测试报告:${env.BUILD_URL}allure" ] ) } } }
---其中robot和执行的脚本需根据自己实际情况修改
jenkins配置钉钉通知实现步骤:
钉钉端:
1.选择自定义机器人
2.创建机器人设置,其中关键词和加签要与jenkins中关键字和加密一致
3.点击完成会生产webhook地址,复制到jenkins中钉钉配置项webhook地址中
jenkins端:
1.jenkins安装钉钉插件(dingtalk)
2.配置钉钉机器人,其中id随便填写,唯一就行(关键字、加密和webhook从钉钉中复制)
3.测试一下,一切正常钉钉会收到通知