鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

添加项目至Lkp Tests测试平台

添加极简版项目(示例-云测工具)

以下所有文件夹存在于lkp-tests文件夹下面,若使用批量部署工具一键部署则在${HOME}/.local文件夹下。

  1. 在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
  2. 文件夹及文件创建完成后,执行以下命令让lkp命令找到指定的运行文件。
    1. 执行以下命令分割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文件)。

    2. 增加软连接。
      ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test

添加带参数项目(示例-云测工具)

  1. 在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
  2. 文件夹及文件创建完成后,执行以下命令让lkp命令找到指定的运行文件。
    1. 执行以下命令去分隔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)。

    2. 增加软连接
      ln -s xxx/lkp-tests/programs/compatibility-test/run xxx/lkp-tests/tests/compatibility-test