diff --git a/README.md b/README.md index a45620e4b56018a9bb615ae64f49a7173e625ece..fa02ed8e1fc982461bf8395e6222dcb33b607e1f 100644 --- a/README.md +++ b/README.md @@ -19,14 +19,14 @@ Pipeline solution to support building, deploying and automating any software pro 1. [Jenkins流水线配置DevKit迁移、亲和门禁](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/Jenkins安装部署/Jenkins流水线配置迁移、亲和门禁.md) 2. [DevKit测试平台安装部署与Jenkins集成部署指导手册](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/测试平台安装部署/devkit测试平台安装部署与jenkins集成部署指导手册.md) -3. [Jenkins流水线无感切换bisheng编译器](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/无感切换/无感切换与jenkins集成部署指导手册.md) +3. [Jenkins流水线无感切换bisheng编译器](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/无感切换/无感切换与Jenkins集成部署指导手册.md) 4. [Jenkins流水线配置Java性能分析](document/Jenkins安装部署/Jenkins流水线配置Java性能分析.md) 5. [clamAV安装部署指导](document/clamAV安装更新指导/clamav安装部署指导资料.md) ###### 原子能力对接流水线实践指导 (Gitlab) DevKit各原子能力对接Gitlab流水线的脚本范例及使用说明 1. [Gitlab流水线配置DevKit迁移、亲和门禁](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/测试平台安装部署/Gitlab流水线配置迁移、亲和门禁.md) -2. [DevKit测试平台安装部署与Gitlab集成部署指导手册](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/lkp-test安装部署/devkit测试平台安装部署与gitlab集成部署指导手册.md) +2. [DevKit测试平台安装部署与Gitlab集成部署指导手册](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/测试平台安装部署/devkit测试平台安装部署与gitlab集成部署指导手册.md) 3. [Jenkins流水线无感切换bisheng编译器](https://gitee.com/openeuler/devkit-pipeline/blob/master/document/无感切换/无感切换与gitlab集成部署指导手册.md) #### 参与贡献 如果您想为本仓库贡献代码,请向本仓库任意maintainer发送邮件 diff --git a/component/CloudTest/src/main/java/com/huawei/ic/openlab/cloudtest/entity/compatibilityfileanalysis/impl/ParseNetPerFiles.java b/component/CloudTest/src/main/java/com/huawei/ic/openlab/cloudtest/entity/compatibilityfileanalysis/impl/ParseNetPerFiles.java index 597b1338dfd31cfd643269dd0b2eecfe5b6af409..e291033f87d514848c96a1fd8af0075c0f03da92 100644 --- a/component/CloudTest/src/main/java/com/huawei/ic/openlab/cloudtest/entity/compatibilityfileanalysis/impl/ParseNetPerFiles.java +++ b/component/CloudTest/src/main/java/com/huawei/ic/openlab/cloudtest/entity/compatibilityfileanalysis/impl/ParseNetPerFiles.java @@ -108,7 +108,7 @@ public class ParseNetPerFiles implements CompatibilityFilesParser { XxkbRate rxkbRate = new XxkbRate(); XxkbRate txkbRate = new XxkbRate(); for (Map.Entry>> entry : netIdleMap.entrySet()) { - if (entry.getValue().get("rxkb").size() < 4 || entry.getValue().get("txkb").size() < 4) { + if (entry.getValue().get("rxkb").size() < 0 || entry.getValue().get("txkb").size() < 0) { continue; } diff --git a/component/LkpTests/compatibility_help/compatibility_testing.sh b/component/LkpTests/compatibility_help/compatibility_testing.sh index b944230ab10f08f4594053d6bd47e87a27e5e7c9..df3d204b0a37990ab3424f8c46818ea11d353cdf 100644 --- a/component/LkpTests/compatibility_help/compatibility_testing.sh +++ b/component/LkpTests/compatibility_help/compatibility_testing.sh @@ -327,12 +327,12 @@ tar_output() { "data/hardware/hardware_info.log" "data/hardware/hardware_pcie.log" "data/product/product_name.log" "data/software/system_version.log" "data/test/performance/test_perf_cpu_1.log" "data/test/performance/test_perf_disk_1.log" - "data/test/performance/test_perf_mem_1.log" "data/test/power/test_power_1.log" + "data/test/performance/test_perf_mem_1.log" "data/test/performance/test_perf_net_1.log" "data/test/compatiable/test_perf_cpu_0.log" "data/test/compatiable/test_perf_cpu_1.log" "data/test/compatiable/test_perf_disk_0.log" "data/test/compatiable/test_perf_disk_1.log" "data/test/compatiable/test_perf_mem_0.log" "data/test/compatiable/test_perf_mem_1.log" "data/test/compatiable/test_perf_net_0.log" - "data/test/compatiable/test_perf_net_1.log" "data/test/power/test_power_0.log") + "data/test/compatiable/test_perf_net_1.log") for data_file in "${result_files[@]}"; do if [[ ! -f "${data_file}" ]]; then write_messages e 0 10 "数据目录下的日志文件${data_file}不存在" diff --git "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" index 55feb4448245b1da6a65fbf9a6aabaad852dac0d..14da96dea16de9f3f22e94d967ae25f550b936df 100644 --- "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" +++ "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" @@ -1,120 +1,216 @@
《devkit 测试平台安装使用以及与gitlab集成部署指导手册》
+[TOC] + ------ 测试平台使用的是lkp test 工具,以下均已lkp test描述测试平台 -## 一、gitlab Pipeline 中集成lkp test (以云测工具(compatibility-test)为示例) +## 一. 安装指导 -### 1. 流水线代码示例 +可以使用一键部署工具去部署,如果只想单独部署测试平台可以按照以下操作(请用有root权限的用户去安装) + +### 1. 下载依赖 + +请前往发行版,下载gem_dependencies.zip, lkp-tests.tar.gz以及compatibility_testing.tar.gz 三个压缩包并将其上传到服务器上 + +### 2. 安装yum 依赖,gems依赖以及编译lkp tests + +### (1)yum源配置 + +请配置everything的yum源 +[https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/](https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/) + +运行 ``` -stages: # List of stages for jobs, and their order of execution - - build - - test - - deploy +yum install -y git wget rubygems +``` +### (2) 安装gems和编译lkp tests -build-job: # This job runs in the build stage, which runs first. - stage: build - script: - - CURDIR=$(pwd) - - echo $CURDIR - - cp -rf /root/.local/compatibility_testing/template.html.bak /root/.local/compatibility_testing/template.html - - sudo /root/.local/lkp-tests/bin/lkp run /root/.local/lkp-tests/programs/compatibility-test/compatibility-test-defaults.yaml - - cp -rf /root/.local/compatibility_testing/compatibility_report.html $CURDIR/compatibility_report.html - - sudo sh /root/.local/compatibility_testing/Chinese/test_result.sh - - echo "请去 '${CURDIR}'/compatibility_report.html 查看报告 " - artifacts: - paths: - - compatibility_report.html # 文件后缀.html根据-r参数配置,也可配置为 src-mig*.* - tags: - - dlj # 对应gitlab-runner注册时的标签,可选择多个 +请去代码仓拷贝 component/LkpTests/install.sh到服务器上 + +脚本的第一个的参数是lkp-tests.zip的路径,第二个参数是gem_dependencies.tar.gz的路径(在上一步下载的)运行这个脚本执行安装 + +### (3) 安装后校验 + +``` +which lkp ``` -### 2. 创建流水线 +看是否能找到lkp应用 -![创建Pipeline任务01](./images/gitlab创建项目.png)![创建Pipeline任务02](./images/gitlab创建项目2.png) -![创建Pipeline任务03](./images/gitlab创建项目3.png)![创建Pipeline任务04](./images/gitlab创建项目4.png) -![创建Pipeline任务05](./images/gitlab创建项目5.png) +### (4)测试是否安装成功 + +```shell +lkp help +lkp install +``` -## 二、FAQ +### 3.安装云测工具 -### lkp install 遇到的问题 +直接解压缩compatibility_testing.tar.gz到${HOME}/.local就行 -1. 报错,系统不支持 - ![](./images/10.PNG) - [解决方式]: - 环境变量中增加 LKP_SRC,路径和$LKP_PATH 一样 - export PATH=$PATH:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin - export LKP_PATH=/home/lj/lkp-tests - export LKP_SRC=/home/lj/lkp-tests +## 二. 添加项目至lkp tests测试平台 -## 2. lkp test 任务创建指导 +### (1) 极简版项目添加,示例-云测工具(compatibility-test) -### 1. 文件介绍 +以下所有文件夹在安装完lkp-tests 文件夹下面,如果使用一键部署工具则在${HOME}/.local下面 -[doc/add-testcase.zh.md · Fengguang/lkp-tests - Gitee.com](https://gitee.com/wu_fengguang/lkp-tests/blob/master/doc/add-testcase.zh.md) +1. 在programs 文件夹下创建compatibility-test文件夹,里面要包含以下几个文件,其余文件可以根据需求自行决定是否添加 -### 2. 必须的文件 +programs/compatibility-test/jobs/compatibility-test.yaml # 预定义compatibility-test的job,需要与文件夹名字一致 -run (可执行脚本) +programs/compatibility-test/meta.yaml # compatibility-test描述文件 -meta.yaml (介绍项目的详细信息) +programs/compatibility-test/run # compatibility-test运行脚本 -jobs 文件夹以及文件夹内需要包含一个与program同名的yaml文件 +2. 文件内容详情 + +programs/compatibility-test/jobs/compatibility-test.yaml: -```shell -lkp split xxx.yaml # 这个yaml是jobs文件夹里的,在哪里执行这个命令,分割出来的任务就会在哪 -lkp run xxxx.yaml # 这个yaml是上一步分割完后生成的yaml ``` +suite: compatibility-test # 项目介绍 +category: functional # 项目类型(functional只跑用户自己写的run脚本) -## 三. 离线安装指导 +compatibility-test: # run 脚本的输入参数,此为极简版,默认用户的run脚本里面写了从哪里接收参数,无需通过 lkp 命令读取,只需保留与文件件相同的名字(compatibility-test:)即可 +``` -可以使用一键部署工具去部署,如果只想单独部署测试平台可以按照以下操作 +programs/compatibility-test/meta.yaml: -### 1. 下载依赖 +``` +metadata: + name: compatibility-test # 名字 + summary: A program can run some basic tests # 这个项目的总结 + description: run compatinility test and generate the report # 这个项目的介绍 + homepage: https://gitee.com/openeuler/devkit-pipeline # 项目的网址 +type: workload # 项目类型,极简版保持一直就行 +depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时按照为空即可 +params: # 需要的参数极简版默认用户在run脚本里处理参数,为空即可 +results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可 +``` -请前往发行版,下载gem_dependencies.zip, lkp-tests.tar.gz以及compatibility_testing.tar.gz 三个压缩包并将其上传到服务器上 +programs/compatibility-test/run: -### 2. 安装yum 依赖,gems依赖以及编译lkp tests +``` +# 这个文件是run脚本本质是一个shell脚本,此示例是用来运行云测平台的脚本,因为项目依赖,参数读取和结果处理均在run脚本里处理了,所以无需上面的文件中无任何添加 -### (1)yum源配置 +#!/bin/bash -请配置everything的yum源 https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/ +set -e +ct_sh_path=${HOME}/.local/compatibility_testing/Chinese/compatibility_testing.sh +cloud_jar=${HOME}/.local/compatibility_testing/cloudTest.jar -运行 +cd ${HOME}/.local/compatibility_testing/Chinese/ +sh $ct_sh_path + +java -jar $cloud_jar & +sleep 15 +jar_pid=$! +curl --location --request GET 'http://127.0.0.1:10037/api/v1/report?savePath=/'${HOME}'/.local/compatibility_testing/Chinese/log.json&file=/'${HOME}'/.local/compatibility_testing/Chinese/log.tar.gz' +kill -9 $jar_pid +cp -rf ${HOME}/.local/compatibility_testing/template.html.bak /${HOME}/.local/compatibility_testing/template.html +cd ${HOME}/.local/compatibility_testing/ +python3 ${HOME}/.local/compatibility_testing/json2html.py +``` + +3. 必要步骤 + 在完成此文件夹的创建后,依然还需要两步操作去让lkp命令找到指定的运行文件 ``` -yum install -y git wget rubygems +# 第一步 运行lkp slpit 命令去分隔jobs里面写的yaml文件,他会根据run文件以来的每个参数不同的输入值分成多个可执行的yaml文件, +例如 +lkp split programs/compatibility-test/jobs/compatibility-test.yaml +# 云测工具会得到输出 programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml,当我们每次更新jobs下面的yaml文件的输入参数后都需要重新运行 lkp split命令 +# 当我们lkp run的时候就要运行这个分隔后的yaml文件(在云测工具就是compatibility-test-defaults.yaml) +# 第二步 需要增加一个软连接 + +ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test ``` -### (2) 安装gems和编译lkp tests +### (2) 带参数版项目添加,示例-云测工具(compatibility-test) -请去代码仓拷贝 component/LkpTests/install.sh到服务器上 +1. 在programs 文件夹下创建compatibility-test文件夹,里面要包含以下几个文件,其余文件可以根据需求自行决定是否添加 -脚本的第一个的参数是lkp-tests.zip的路径,第二个参数是gem_dependencies.tar.gz的路径(在上一步下载的)运行这个脚本执行安装 +programs/compatibility-test/jobs/compatibility-test.yaml # 预定义compatibility-test的job,需要与文件夹名字一致 -### (3) 安装后校验 +programs/compatibility-test/meta.yaml # compatibility-test描述文件 + +programs/compatibility-test/run # compatibility-test运行脚本 + +2. 文件内容详情 + +programs/compatibility-test/jobs/compatibility-test.yaml: ``` -which lkp +suite: compatibility-test # 项目介绍 +category: functional # 项目类型(functional只跑用户自己写的run脚本) + +compatibility-test: # run 脚本的输入参数 + parameter1: + - value1 + - value2 + + parameter2: + - value1 + - value2 + # 示例 + file_path: ${HOME}/.local/compatibility_testing/Chinese、compatibility_testing.sh ``` -看是否能找到lkp应用 +programs/compatibility-test/meta.yaml: -### (4)测试是否安装成功 +``` +metadata: + name: compatibility-test # 名字 + summary: A program can run some basic tests # 这个项目的总结 + description: run compatinility test and generate the report # 这个项目的介绍 + homepage: https://gitee.com/openeuler/devkit-pipeline # 项目的网址 +type: workload # 项目类型,极简版保持一直就行 +depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时按照为空即可 +params: # 需要的参数 + file_path: +results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可 +``` + +programs/compatibility-test/run: -```shell -lkp help -lkp install ``` +#!/bin/bash -### 3.安装云测工具 +set -e +ct_sh_path=${file_path} +cloud_jar=${HOME}/.local/compatibility_testing/cloudTest.jar -直接解压缩compatibility_testing.tar.gz到指定路径就行 +cd ${HOME}/.local/compatibility_testing/Chinese/ +sh $ct_sh_path + +java -jar $cloud_jar & +sleep 15 +jar_pid=$! +curl --location --request GET 'http://127.0.0.1:10037/api/v1/report?savePath=/'${HOME}'/.local/compatibility_testing/Chinese/log.json&file=/'${HOME}'/.local/compatibility_testing/Chinese/log.tar.gz' +kill -9 $jar_pid +cp -rf ${HOME}/.local/compatibility_testing/template.html.bak /${HOME}/.local/compatibility_testing/template.html +cd ${HOME}/.local/compatibility_testing/ +python3 ${HOME}/.local/compatibility_testing/json2html.py +``` + +3. 必要步骤 + 在完成此文件夹的创建后,依然还需要两步操作去让lkp命令找到指定的运行文件 -## 四、 云测工具 +``` +# 第一步 运行lkp slpit 命令去分隔jobs里面写的yaml文件,他会根据run文件以来的每个参数不同的输入值分成多个可执行的yaml文件, +例如 +lkp split programs/compatibility-test/jobs/compatibility-test.yaml +# 云测工具会得到输出 programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml,当我们每次更新jobs下面的yaml文件的输入参数后都需要重新运行 lkp split命令 +# 当我们lkp run的时候就要运行这个分隔后的yaml文件(在云测工具就是compatibility-test-defaults.yaml) +# 第二步 需要增加一个软连接 + +ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test +``` + +## 三、 云测工具 要运行云测平台需要配置参数,在安装目录${HOME}/.local/compatibility_testing/Chinese/compatibility_testing.conf @@ -124,25 +220,29 @@ lkp install #版本信息: 华为技术有限公司,版权所有(C) 2020-2022 #修改记录: 2022-08-17 修改 #使用方法:自动化采集开始前,请用户先配置compatibility_testing.conf, -# 填写待测试应用名称application_names, +# 填写待测试应用名称application_names, # 待测试应用启动命令start_app_commands, # 待测试应用停止命令stop_app_commands -# 被测应用软件的压力测试工具启动命令start_performance_scripts, +# 被测应用软件的压力测试工具启动命令start_performance_scripts, # 确认填写后 -# CentOS/中标麒麟/SUSE/openEuler:使用root用户执行,sh compatibility_testing.sh。 +# CentOS/中标麒麟/SUSE/openEuler:使用root用户执行,sh compatibility_testing.sh。 # Ubuntu/银河麒麟/UOS:使用root用户执行,bash compatibility_testing.sh。 # 多节点集群部署,在每台节点服务器上配置对自身节点和其他所有节点的SSH免密登录。并在控制节点(主节点)执行脚本。 ################################################################################### -# 待测试应用软件进程名称,多个应用名称以逗号隔开。 + # 可通过ps或者docker top 命令CMD所在列查找后台进程名称, Kubernetes集群环境下填写Pod名称。 -application_names= test1 #请填写应用启动后的进程名 +application_names= test1 # 待测试应用软件进程名称,多个应用名称以逗号隔开。(必填) # 待测试应用软件启动命令,多个应用的启动命令以逗号隔开。 -start_app_commands= nohup python3 /xxx/test1.py & # 如果是多行命令请写到脚本里,由脚本拉起,如果命令不是后台运行,请添加nohup参数变成后台运行 +start_app_commands= nohup python3 xxx/test1.py & # 如果是多行命令请写到脚本里,由脚本拉起,如果命令不是后台运行,请添加nohup参数变成后台运行(必填) +# 空载采集时间 +idle_performance_time=1 # 在应用运行前后会对当前环境进行性能采集,填写采集时间(整数最小为1,必填,不要加空格,) # 待测试应用软件停止命令,多个应用的停止命令以逗号隔开。 -stop_app_commands= # 应用软件停止命令 +stop_app_commands= # 如果应用有停止命令可以写上去,如果没有会根据进程名杀掉进程(非必填) # 被测应用软件的压力测试工具启动命令。 -start_performance_scripts= nohup python3 /home/lj/test2.py & +start_performance_scripts= nohup python3 xxx/test3.py & # +# 被测应用软件的压力测试工具运行时间(分钟)。 +start_performance_time=1 # 如果写了压力测试工具启动命令,那么这个运行时间是必填的,用户要根据自己的压力测试工具能运行多久或者想测试多久去写时间(不要加空格, 整数最小为1) # Kubernetes集群填写"Y"。其他环境可置空。 kubernetes_env= @@ -165,7 +265,47 @@ hpc_certificate= binary_file= ``` -## 五、lkp test 添加测试用例介绍 +## 四、gitlab Pipeline 中集成lkp test (以云测工具(compatibility-test)为示例) + +请确保运行的用户有root权限 + +### 1. 流水线代码示例 + +``` +stages: # List of stages for jobs, and their order of execution + - build + - test + - deploy + + +build-job: # This job runs in the build stage, which runs first. + stage: build + script: + - CURDIR=$(pwd) + - echo $CURDIR + - cp -rf /root/.local/compatibility_testing/template.html.bak /root/.local/compatibility_testing/template.html + - sudo /root/.local/lkp-tests/bin/lkp run /root/.local/lkp-tests/programs/compatibility-test/compatibility-test-defaults.yaml + - cp -rf /root/.local/compatibility_testing/compatibility_report.html $CURDIR/compatibility_report.html + - sudo sh /root/.local/compatibility_testing/Chinese/test_result.sh # + - echo "请去 '${CURDIR}'/compatibility_report.html 查看报告 " + artifacts: + paths: + - compatibility_report.html # 文件后缀.html根据-r参数配置,也可配置为 src-mig*.* + tags: + - dlj # 对应gitlab-runner注册时的标签,可选择多个 + artifacts: + paths: + - compatibility_report.html + name: compatibility_report +``` + +### 2. 创建流水线 + +![创建Pipeline任务01](./images/gitlab创建项目.png)![创建Pipeline任务02](./images/gitlab创建项目2.png) +![创建Pipeline任务03](./images/gitlab创建项目3.png)![创建Pipeline任务04](./images/gitlab创建项目4.png) +![创建Pipeline任务05](./images/gitlab创建项目5.png) + +## 五、lkp test 添加测试用例全部功能介绍 ### 样例 @@ -496,3 +636,15 @@ lkp split programs/compatibility-test/jobs/compatibility-test.yaml ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test ``` + +## 六、FAQ + +### lkp install 遇到的问题 + +1. 报错,系统不支持 + ![](./images/10.PNG) + [解决方式]: + 环境变量中增加 LKP_SRC,路径和$LKP_PATH 一样 + export PATH=$PATH:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin + export LKP_PATH=/home/lj/lkp-tests + export LKP_SRC=/home/lj/lkp-tests \ No newline at end of file diff --git "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" index 84db07b6967f7e0625566804eaec0794e7e92bd1..f5068f04d08f5235ea11b1b92ec4b8ee1e01e000 100644 Binary files "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" and "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216gitlab\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" differ diff --git "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" index 766049c61b6163fdabd75005542f3b00b063eb26..8309a4bd319fa0206b749a5dc8cc5357f6a975d1 100644 --- "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" +++ "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.md" @@ -6,144 +6,211 @@ 测试平台使用的是lkp test 工具,以下均已lkp test描述测试平台 -## 一、Jenkins Pipeline 中集成lkp test (以云测工具(compatibility-test)为示例) +## 一. 安装指导 -### 1 groovy 代码 +可以使用一键部署工具去部署,如果只想单独部署测试平台可以按照以下操作(请用有root权限的用户去安装) -```groovy -stage('lkp test') { - steps { - script{ - echo '====== lkp test ======' - sh ''' - CURDIR=$(pwd) - cp -rf /xxx/compatibility_testing/template.html.bak /xxx/compatibility_testing/template.html - sudo lkp run /xxx/lkp-tests/programs/compatibility-test/compatibility-test-defaults.yaml - cp -rf /xxx/test/compatibility_testing/compatibility_report.html $CURDIR - ''' - sh(script: "sudo bash /xxx/compatibility_testing/report_result.sh", returnStdout:true).trim() +### 1. 下载依赖 - } - } - post { - always { - publishHTML(target: [allowMissing: false, - alwaysLinkToLastBuild: false, - keepAll : true, - reportDir : '.', - reportFiles : 'compatibility_report.html', - reportName : 'compatibility test Report'] - ) - } - } - } -``` +请前往发行版,下载gem_dependencies.zip, lkp-tests.tar.gz以及compatibility_testing.tar.gz 三个压缩包并将其上传到服务器上 -### 2 创建流水线 +### 2. 安装yum 依赖,gems依赖以及编译lkp tests -![创建Pipeline任务01](./images/创建Pipeline任务01.png)![创建Pipeline任务02](./images/创建Pipeline任务02.png)![创建Pipeline任务03](./images/lkp-test适配jenkins流水线添加代码.png) ----- +### (1)yum源配置 -### 3. 执行任务 +请配置everything的yum源 +[https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/](https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/) -![执行任务](./images/lkp-test立即构建.png) +运行 ----- +``` +yum install -y git wget rubygems +``` -### 4. 查看任务执行状态 +### (2) 安装gems和编译lkp tests - ![传统方式查看任务执行状态](./images/lkp-test查看任务状态.png) +请去代码仓拷贝 component/LkpTests/install.sh到服务器上 ----- +脚本的第一个的参数是lkp-tests.zip的路径,第二个参数是gem_dependencies.tar.gz的路径(在上一步下载的)运行这个脚本执行安装 -### 5. 查看报告 +### (3) 安装后校验 -![传统方式查阅报告](./images/lkp-test查看报告.png) +``` +which lkp +``` -### 6. lkp test报告内容(以云测工具(compatibility-test)为示例) +看是否能找到lkp应用 - ![源码迁移报告](./images/lkp-test报告内容.png) +### (4)测试是否安装成功 ----- +```shell +lkp help +lkp install +``` -## 二、FAQ +### 3.安装云测工具 -### lkp install 遇到的问题 +直接解压缩compatibility_testing.tar.gz到${HOME}/.local就行 -1. 报错,系统不支持 - ![](./images/10.PNG) - [解决方式]: - 环境变量中增加 LKP_SRC,路径和$LKP_PATH 一样 - export PATH=$PATH:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin - export LKP_PATH=/home/lj/lkp-tests - export LKP_SRC=/home/lj/lkp-tests +## 二. 添加项目至lkp tests测试平台 -## 2. lkp test 任务创建指导 +### (1) 极简版项目添加,示例-云测工具(compatibility-test) -### 1. 文件介绍 +以下所有文件夹在安装完lkp-tests 文件夹下面,如果使用一键部署工具则在${HOME}/.local下面 -[doc/add-testcase.zh.md · Fengguang/lkp-tests - Gitee.com](https://gitee.com/wu_fengguang/lkp-tests/blob/master/doc/add-testcase.zh.md) +1. 在programs 文件夹下创建compatibility-test文件夹,里面要包含以下几个文件,其余文件可以根据需求自行决定是否添加 -### 2. 必须的文件 +programs/compatibility-test/jobs/compatibility-test.yaml # 预定义compatibility-test的job,需要与文件夹名字一致 -run (可执行脚本) +programs/compatibility-test/meta.yaml # compatibility-test描述文件 -meta.yaml (介绍项目的详细信息) +programs/compatibility-test/run # compatibility-test运行脚本 -jobs 文件夹以及文件夹内需要包含一个与program同名的yaml文件 +2. 文件内容详情 + +programs/compatibility-test/jobs/compatibility-test.yaml: -```shell -lkp split xxx.yaml # 这个yaml是jobs文件夹里的,在哪里执行这个命令,分割出来的任务就会在哪 -lkp run xxxx.yaml # 这个yaml是上一步分割完后生成的yaml ``` +suite: compatibility-test # 项目介绍 +category: functional # 项目类型(functional只跑用户自己写的run脚本) -## 三. 离线安装指导 +compatibility-test: # run 脚本的输入参数,此为极简版,默认用户的run脚本里面写了从哪里接收参数,无需通过 lkp 命令读取,只需保留与文件件相同的名字(compatibility-test:)即可 +``` -可以使用一键部署工具去部署,如果只想单独部署测试平台可以按照以下操作 +programs/compatibility-test/meta.yaml: -### 1. 下载依赖 +``` +metadata: + name: compatibility-test # 名字 + summary: A program can run some basic tests # 这个项目的总结 + description: run compatinility test and generate the report # 这个项目的介绍 + homepage: https://gitee.com/openeuler/devkit-pipeline # 项目的网址 +type: workload # 项目类型,极简版保持一直就行 +depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时按照为空即可 +params: # 需要的参数极简版默认用户在run脚本里处理参数,为空即可 +results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可 +``` -请前往发行版,下载gem_dependencies.zip, lkp-tests.tar.gz以及compatibility_testing.tar.gz 三个压缩包并将其上传到服务器上 +programs/compatibility-test/run: -### 2. 安装yum 依赖,gems依赖以及编译lkp tests +``` +# 这个文件是run脚本本质是一个shell脚本,此示例是用来运行云测平台的脚本,因为项目依赖,参数读取和结果处理均在run脚本里处理了,所以无需上面的文件中无任何添加 -### (1)yum源配置 +#!/bin/bash -请配置everything的yum源 -[https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/](https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/ISO/aarch64/) +set -e +ct_sh_path=${HOME}/.local/compatibility_testing/Chinese/compatibility_testing.sh +cloud_jar=${HOME}/.local/compatibility_testing/cloudTest.jar -运行 +cd ${HOME}/.local/compatibility_testing/Chinese/ +sh $ct_sh_path + +java -jar $cloud_jar & +sleep 15 +jar_pid=$! +curl --location --request GET 'http://127.0.0.1:10037/api/v1/report?savePath=/'${HOME}'/.local/compatibility_testing/Chinese/log.json&file=/'${HOME}'/.local/compatibility_testing/Chinese/log.tar.gz' +kill -9 $jar_pid +cp -rf ${HOME}/.local/compatibility_testing/template.html.bak /${HOME}/.local/compatibility_testing/template.html +cd ${HOME}/.local/compatibility_testing/ +python3 ${HOME}/.local/compatibility_testing/json2html.py +``` + +3. 必要步骤 + 在完成此文件夹的创建后,依然还需要两步操作去让lkp命令找到指定的运行文件 ``` -yum install -y git wget rubygems +# 第一步 运行lkp slpit 命令去分隔jobs里面写的yaml文件,他会根据run文件以来的每个参数不同的输入值分成多个可执行的yaml文件, +例如 +lkp split programs/compatibility-test/jobs/compatibility-test.yaml +# 云测工具会得到输出 programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml,当我们每次更新jobs下面的yaml文件的输入参数后都需要重新运行 lkp split命令 +# 当我们lkp run的时候就要运行这个分隔后的yaml文件(在云测工具就是compatibility-test-defaults.yaml) +# 第二步 需要增加一个软连接 + +ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test ``` -### (2) 安装gems和编译lkp tests +### (2) 带参数版项目添加,示例-云测工具(compatibility-test) -请去代码仓拷贝 component/LkpTests/install.sh到服务器上 +1. 在programs 文件夹下创建compatibility-test文件夹,里面要包含以下几个文件,其余文件可以根据需求自行决定是否添加 -脚本的第一个的参数是lkp-tests.zip的路径,第二个参数是gem_dependencies.tar.gz的路径(在上一步下载的)运行这个脚本执行安装 +programs/compatibility-test/jobs/compatibility-test.yaml # 预定义compatibility-test的job,需要与文件夹名字一致 -### (3) 安装后校验 +programs/compatibility-test/meta.yaml # compatibility-test描述文件 + +programs/compatibility-test/run # compatibility-test运行脚本 + +2. 文件内容详情 + +programs/compatibility-test/jobs/compatibility-test.yaml: ``` -which lkp +suite: compatibility-test # 项目介绍 +category: functional # 项目类型(functional只跑用户自己写的run脚本) + +compatibility-test: # run 脚本的输入参数 + parameter1: + - value1 + - value2 + + parameter2: + - value1 + - value2 + # 示例 + file_path: ${HOME}/.local/compatibility_testing/Chinese、compatibility_testing.sh ``` -看是否能找到lkp应用 +programs/compatibility-test/meta.yaml: -### (4)测试是否安装成功 +``` +metadata: + name: compatibility-test # 名字 + summary: A program can run some basic tests # 这个项目的总结 + description: run compatinility test and generate the report # 这个项目的介绍 + homepage: https://gitee.com/openeuler/devkit-pipeline # 项目的网址 +type: workload # 项目类型,极简版保持一直就行 +depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时按照为空即可 +params: # 需要的参数 + file_path: +results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可 +``` + +programs/compatibility-test/run: -```shell -lkp help -lkp install ``` +#!/bin/bash -### 3.安装云测工具 +set -e +ct_sh_path=${file_path} +cloud_jar=${HOME}/.local/compatibility_testing/cloudTest.jar -直接解压缩compatibility_testing.tar.gz到指定路径就行 +cd ${HOME}/.local/compatibility_testing/Chinese/ +sh $ct_sh_path -## 四、 云测工具 +java -jar $cloud_jar & +sleep 15 +jar_pid=$! +curl --location --request GET 'http://127.0.0.1:10037/api/v1/report?savePath=/'${HOME}'/.local/compatibility_testing/Chinese/log.json&file=/'${HOME}'/.local/compatibility_testing/Chinese/log.tar.gz' +kill -9 $jar_pid +cp -rf ${HOME}/.local/compatibility_testing/template.html.bak /${HOME}/.local/compatibility_testing/template.html +cd ${HOME}/.local/compatibility_testing/ +python3 ${HOME}/.local/compatibility_testing/json2html.py +``` + +3. 必要步骤 + 在完成此文件夹的创建后,依然还需要两步操作去让lkp命令找到指定的运行文件 + +``` +# 第一步 运行lkp slpit 命令去分隔jobs里面写的yaml文件,他会根据run文件以来的每个参数不同的输入值分成多个可执行的yaml文件, +例如 +lkp split programs/compatibility-test/jobs/compatibility-test.yaml +# 云测工具会得到输出 programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml,当我们每次更新jobs下面的yaml文件的输入参数后都需要重新运行 lkp split命令 +# 当我们lkp run的时候就要运行这个分隔后的yaml文件(在云测工具就是compatibility-test-defaults.yaml) +# 第二步 需要增加一个软连接 + +ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test +``` + +## 三、 云测工具 要运行云测平台需要配置参数,在安装目录${HOME}/.local/compatibility_testing/Chinese/compatibility_testing.conf @@ -153,25 +220,29 @@ lkp install #版本信息: 华为技术有限公司,版权所有(C) 2020-2022 #修改记录: 2022-08-17 修改 #使用方法:自动化采集开始前,请用户先配置compatibility_testing.conf, -# 填写待测试应用名称application_names, +# 填写待测试应用名称application_names, # 待测试应用启动命令start_app_commands, # 待测试应用停止命令stop_app_commands -# 被测应用软件的压力测试工具启动命令start_performance_scripts, +# 被测应用软件的压力测试工具启动命令start_performance_scripts, # 确认填写后 -# CentOS/中标麒麟/SUSE/openEuler:使用root用户执行,sh compatibility_testing.sh。 +# CentOS/中标麒麟/SUSE/openEuler:使用root用户执行,sh compatibility_testing.sh。 # Ubuntu/银河麒麟/UOS:使用root用户执行,bash compatibility_testing.sh。 # 多节点集群部署,在每台节点服务器上配置对自身节点和其他所有节点的SSH免密登录。并在控制节点(主节点)执行脚本。 ################################################################################### -# 待测试应用软件进程名称,多个应用名称以逗号隔开。 + # 可通过ps或者docker top 命令CMD所在列查找后台进程名称, Kubernetes集群环境下填写Pod名称。 -application_names= test1 #请填写应用启动后的进程名 +application_names= test1 # 待测试应用软件进程名称,多个应用名称以逗号隔开。(必填) # 待测试应用软件启动命令,多个应用的启动命令以逗号隔开。 -start_app_commands= nohup python3 /xxx/test1.py & # 如果是多行命令请写到脚本里,由脚本拉起,如果命令不是后台运行,请添加nohup参数变成后台运行 +start_app_commands= nohup python3 xxx/test1.py & # 如果是多行命令请写到脚本里,由脚本拉起,如果命令不是后台运行,请添加nohup参数变成后台运行(必填) +# 空载采集时间 +idle_performance_time=1 # 在应用运行前后会对当前环境进行性能采集,填写采集时间(整数最小为1,必填,不要加空格,) # 待测试应用软件停止命令,多个应用的停止命令以逗号隔开。 -stop_app_commands= # 应用软件停止命令 +stop_app_commands= # 如果应用有停止命令可以写上去,如果没有会根据进程名杀掉进程(非必填) # 被测应用软件的压力测试工具启动命令。 -start_performance_scripts= nohup python3 /home/lj/test2.py & +start_performance_scripts= nohup python3 xxx/test3.py & # +# 被测应用软件的压力测试工具运行时间(分钟)。 +start_performance_time=1 # 如果写了压力测试工具启动命令,那么这个运行时间是必填的,用户要根据自己的压力测试工具能运行多久或者想测试多久去写时间(不要加空格, 整数最小为1) # Kubernetes集群填写"Y"。其他环境可置空。 kubernetes_env= @@ -194,7 +265,69 @@ hpc_certificate= binary_file= ``` -## 五、lkp test 添加测试用例介绍 +## 四、Jenkins Pipeline 中集成lkp test (以云测工具(compatibility-test)为示例) + +请确保运行的用户有root权限 + +### 1 groovy 代码 + +```groovy +stage('lkp test') { + steps { + script{ + echo '====== lkp test ======' + sh ''' + CURDIR=$(pwd) + cp -rf /xxx/compatibility_testing/template.html.bak /xxx/compatibility_testing/template.html + sudo lkp run /xxx/lkp-tests/programs/compatibility-test/compatibility-test-defaults.yaml + cp -rf /xxx/test/compatibility_testing/compatibility_report.html $CURDIR + ''' + sh(script: "sudo bash /xxx/compatibility_testing/report_result.sh", returnStdout:true).trim() # 这个是用于判断lkp 命令后生成的结果是否符合预期,需要根据不同的run脚本生成的结果文件去做不同的结果判断结果 + + } + } + post { + always { + publishHTML(target: [allowMissing: false, + alwaysLinkToLastBuild: false, + keepAll : true, + reportDir : '.', + reportFiles : 'compatibility_report.html', + reportName : 'compatibility test Report'] + ) + } + } + } +``` + +### 2 创建流水线 + +![创建Pipeline任务01](./images/创建Pipeline任务01.png)![创建Pipeline任务02](./images/创建Pipeline任务02.png)![创建Pipeline任务03](./images/lkp-test适配jenkins流水线添加代码.png) +---- + +### 3. 执行任务 + +![执行任务](./images/lkp-test立即构建.png) + +---- + +### 4. 查看任务执行状态 + + ![传统方式查看任务执行状态](./images/lkp-test查看任务状态.png) + +---- + +### 5. 查看报告 + +![传统方式查阅报告](./images/lkp-test查看报告.png) + +### 6. lkp test报告内容(以云测工具(compatibility-test)为示例) + + ![源码迁移报告](./images/lkp-test报告内容.png) + +---- + +## 五、lkp test 添加测试用例全部功能介绍 ### 样例 @@ -448,80 +581,14 @@ programs/$program/PKGBUILD # when $package=$program makedepends_debian_11=(lam4-dev libopenmpi-dev libmpich-dev pvm-dev) ``` -### 示例-云测工具(compatibility-test) - -1. 在programs 文件夹下创建compatibility-test文件夹,里面至少要包含以下几个文件,其余文件可以根据需求自行决定是否添加 - programs/compatibility-test/jobs/compatibility-test.yaml # 预定义compatibility-test的job,需要与文件夹名字一致 - programs/compatibility-test/meta.yaml # compatibility-test描述文件 - programs/compatibility-test/run # compatibility-test运行脚本 - -2. 文件内容详情 - programs/compatibility-test/jobs/compatibility-test.yaml: - -``` -suite: compatibility-test # 项目介绍 -category: functional # 项目类型(functional是只跑run脚本不会同时拉monitor监控应用,如果想同时使用monitor请写benchmark) - -file_path: /home/lj/test/compatibility_testing/Chinese # run 脚本的输入参数,如果有多个请写在下面compatibility-test:后 -compatibility-test: # run 脚本的输入参数, -# 如果同一参数有多个不同值需要运行,可以按照以下方式参考 -xxx: - parameter1: - - value1 - - value2 - - parameter2: - - value1 - - value2 -``` - -programs/compatibility-test/meta.yaml: - -``` -metadata: - name: compatibility-test # 名字 - summary: A program can run some basic tests # 这个项目的总结 - description: run compatinility test and generate the report # 这个项目的介绍 - homepage: https://gitee.com/openeuler/devkit-pipeline # 项目的网址 -type: workload # 项目类型 -depens: # 项目依赖 -params: # 需要的参数 -results: # 需要对结果进行处理 -``` - -programs/compatibility-test/run: - -``` -# 这个文件是shell脚本,当使用lkp test命令去运行指定yaml的时候会把yaml的参数传入到run 文件中,请根据各自项目自行写此文件 -#!/bin/bash - -set -e -ct_sh_path=${HOME}/.local/compatibility_testing/Chinese/compatibility_testing.sh -cloud_jar=${HOME}/.local/compatibility_testing/cloudTest.jar +## 六、FAQ -cd ${HOME}/.local/compatibility_testing/Chinese/ -#sh $ct_sh_path - -#java -jar $cloud_jar & -#sleep 15 -#jar_pid=$! -#curl --location --request GET 'http://127.0.0.1:10037/api/v1/report?savePath=/'${HOME}'/.local/compatibility_testing/Chinese/log.json&file=/'${HOME}'/.local/compatibility_testing/Chinese/log.tar.gz' -#kill -9 $jar_pid -cp -rf ${HOME}/.local/compatibility_testing/template.html.bak /${HOME}/.local/compatibility_testing/template.html -cd ${HOME}/.local/compatibility_testing/ -python3 ${HOME}/.local/compatibility_testing/json2html.py -``` - -3. 必要步骤 - 在完成此文件夹的创建后,依然还需要两步操作去让lkp命令找到指定的运行文件 - -``` -# 第一步 运行lkp slpit 命令去分隔jobs里面写的yaml文件,他会根据run文件以来的每个参数不同的输入值分成多个可执行的yaml文件, -例如 -lkp split programs/compatibility-test/jobs/compatibility-test.yaml -# 云测工具会得到输出 programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml,当我们每次更新jobs下面的yaml文件的输入参数后都需要重新运行 lkp split命令 -# 当我们lkp run的时候就要运行这个分隔后的yaml文件(在云测工具就是compatibility-test-defaults.yaml) -# 第二步 需要增加一个软连接 +### lkp install 遇到的问题 -ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test -``` +1. 报错,系统不支持 + ![](./images/10.PNG) + [解决方式]: + 环境变量中增加 LKP_SRC,路径和$LKP_PATH 一样 + export PATH=$PATH:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin:/home/lj/lkp-tests/sbin:/home/lj/lkp-tests/bin + export LKP_PATH=/home/lj/lkp-tests + export LKP_SRC=/home/lj/lkp-tests diff --git "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" index b46866fbc989e71b4c50c364e0caa572eb1ce12f..d67cc76a0ee530cea49e7f0a326718764012156f 100644 Binary files "a/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" and "b/document/\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262/devkit\346\265\213\350\257\225\345\271\263\345\217\260\345\256\211\350\243\205\351\203\250\347\275\262\344\270\216jenkins\351\233\206\346\210\220\351\203\250\347\275\262\346\214\207\345\257\274\346\211\213\345\206\214.pdf" differ