添加项目至Lkp Tests测试平台
添加极简版项目(示例-云测工具)
以下所有文件夹存在于lkp-tests文件夹下面,若使用批量部署工具一键部署则在${HOME}/.local文件夹下。
- 在programs文件夹下创建compatibility-test文件夹,需要包含以下几个文件,其余文件可以根据需求自行决定是否添加。
- “programs/compatibility-test/jobs/compatibility-test.yaml ”,预定义compatibility-test的任务,需要与文件夹名字一致。
# programs/compatibility-test/jobs/compatibility-test.yaml 文件内容详情: suite: compatibility-test # 项目介绍 category: functional # 项目类型(functional只跑用户自己写的run脚本) compatibility-test: # run脚本的输入参数,此为极简版,默认用户的run脚本里面写了从哪里接收参数,无需通过lkp命令读取,只需保留与文件件相同的名字(compatibility-test:)即可
- “programs/compatibility-test/meta.yaml”,compatibility-test描述文件。
# 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 # 项目类型,极简版保持一直就行 depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时安装,为空即可 params: # 需要的参数极简版默认用户在run脚本里处理参数,为空即可 results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可
- “programs/compatibility-test/run”,compatibility-test运行脚本。
# programs/compatibility-test/run文件内容详情: # 这个文件是run脚本本质是一个shell脚本,此示例是用来运行云测平台的脚本,因为项目依赖,参数读取和结果处理均在run脚本里处理了,所以无需上面的文件中无任何添加 #!/bin/bash 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
- “programs/compatibility-test/jobs/compatibility-test.yaml ”,预定义compatibility-test的任务,需要与文件夹名字一致。
- 文件夹及文件创建完成后,执行以下命令让lkp命令找到指定的运行文件。
- 执行以下命令分割jobs中写的yaml文件,会根据run文件中每个参数不同的输入值分成多个可执行的yaml文件。
lkp split programs/compatibility-test/jobs/compatibility-test.yaml
云测工具会得到如下输出信息,每次更新jobs下面的yaml文件的输入参数后都需要重新运行lkp split命令。
programs/compatibility-test/jobs/compatibility-test.yaml=> ./compatibility-test-defaults.yaml
lkp run的时候需要运行这个分割后的yaml文件(云测工具中即为compatibility-test-defaults.yaml文件)。
- 增加软连接。
ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test
- 执行以下命令分割jobs中写的yaml文件,会根据run文件中每个参数不同的输入值分成多个可执行的yaml文件。
添加带参数项目(示例-云测工具)
- 在programs文件夹下创建compatibility-test文件夹,需要包含以下几个文件,其余文件可以根据需求自行决定是否添加。
- “programs/compatibility-test/jobs/compatibility-test.yaml”,预定义compatibility-test的任务,需要与文件夹名字一致。
# programs/compatibility-test/jobs/compatibility-test.yaml“”文件内容详情: 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
- “programs/compatibility-test/meta.yaml”,compatibility-test描述文件。
# 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 # 项目类型,极简版保持一直就行 depends: # 项目依赖,极简版默认用户知道自己运行脚本需要哪些依赖已经安装好,无需在运行lkp命令时按照为空即可 params: # 需要的参数 file_path: results: # 需要对结果进行处理,默认用户在run脚本里处理结果,为空即可
- “programs/compatibility-test/run”,compatibility-test运行脚本。
# programs/compatibility-test/run文件内容详情: #!/bin/bash set -e ct_sh_path=${file_path} 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
- “programs/compatibility-test/jobs/compatibility-test.yaml”,预定义compatibility-test的任务,需要与文件夹名字一致。
- 文件夹及文件创建完成后,执行以下命令让lkp命令找到指定的运行文件。
- 执行以下命令去分隔jobs中写的yaml文件,会根据run文件中每个参数不同的输入值分成多个可执行的yaml文件。
lkp split programs/compatibility-test/jobs/compatibility-test.yaml
云测工具会得到如下输出信息,每次更新jobs下面的yaml文件的输入参数后都需要重新运行lkp split命令。programs/compatibility-test/jobs/compatibility-test.yaml => ./compatibility-test-defaults.yaml
lkp run的时候需要运行这个分隔后的yaml文件(云测工具中即为compatibility-test-defaults.yaml)。
- 增加软连接
ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test
- 执行以下命令去分隔jobs中写的yaml文件,会根据run文件中每个参数不同的输入值分成多个可执行的yaml文件。
父主题: 测试