华为云用户手册

  • 高级选项 高级选项均为非必填选项,在构建过程中有工程无法执行需要特殊适配或优化性能时配置,若随意配置可能会导致构建失败。 表1 通用选项 参数项 说明 示例 TB_GET_TRACE 构建结束后获取依赖json文件文件的开关。 1:开启。 0:关闭(默认)。 1 TB_NINJA_RULE_ALL 用于产物分类模式自定义Target切割及分发,使用逗号分隔需要切割至不同分组的编译产物类别,使用冒号分隔需要切割至同一分组的编译产物类别。使用星号分隔多个ninja工程的配置。不设置时会自动配置合适值。 nonSystem:fonts:media:usr:system_ext,bin_other1:bin:bin_other2:lib:lib64,apex:system_ext_apex:apex_1:system_ext_apex_1:fake_packages:packaging_script,framework:priv-app:priv-app2:priv-app3:app,host,apex_0:system_ext_apex_0,apex_2:system_ext_apex_2:vendor,product:etc*nonSystem TB_TARGETS_LIST_ALL 人工指定分发的target进行编译,每个逗号隔开不同worker的target,每个空格隔开同一个worker的不同target。使用星号分隔多个ninja工程的配置。不设置时会自动配置合适值。 "nonSystem_target,framework_target,lib_target*lib_target" TB_HOOK_LOCK 对软链接也进行文件同步。若构建过程中发生软链接文件未同步导致的报错,需要开启此选项。 1:开启。 0:关闭(默认)。 1 TB_APPEND_PATH 构建时可向PATH环境变量中追加的参数。 1:开启。 0:关闭(默认)。 1 TB_SHUT_DOWN_SAME_TIME 所有worker都等待主节点执行完毕后再结束构建释放资源。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_LOCK 构建加速的同时worker向构建执行机实时传输文件。开启后效率会进一步提升,但会存在概率性编译失败的情况。 1:开启。 0:关闭(默认)。 1 TB_MAKE_J 设置构建并发数。默认为worker核数。 16 TB_REFER_NINJA_FILE 如果存在串行执行一个一模一样的ninja工程时,可以使用此变量优化构建速度 1:开启。 0:关闭(默认)。 1 CCACHE_DIR 自定义编译缓存的本地目录。默认为/tmp/xcache目录。 ${WORKSPACE}/TBcache TB_CACHE_SIZE 使用自定义执行机时自定义编译缓存的本地目录存储大小上限。默认为100G。 100G CCACHE_MAXSIZE 自定义编译缓存的本地目录存储大小上限。默认为20G。 100G TB_ONE_WORKER 使用自定义执行机且只使用一个worker进行构建时可以使用此变量打开编译缓存开关。 1:开启。 0:关闭(默认)。 1 NT 该变量在主节点client自动设置,可以通过比较此变量是否等于1判断该节点是否为主节点client。 不需要配置。 TB_NET_INTERFACE_NAME 指定获取IP时读取的网卡名,在多网卡情况下获取IP使用,默认为空,多个网卡名通过逗号分隔,配置在前的网卡名有更高的优先级。 eth0,eth1 TB_ACC_PREPARE 使用自定义执行机时必须配置此变量。 false TB_OUTPUT_PATH 自定义产物目录路径,默认设置为out。 output TB_SELF_ENV worker编译target时使用本地环境变量,不使用client传递的变量。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_FLAG 增加同步文件时rsync命令的参数。 --ignore-existing -a TBUILD_PLUGIN_PKG_TYPE 指定使用的TBuild版本为snapshot版本还是release版本。不设置时默认使用最新的release版本。 release TBUILD_PLUGIN_PKG_VERSION 指定使用的TBuild版本号。不设置时默认使用最新的release版本。 1.0.1 表2 依赖解析模式 参数项 说明 示例 TB_CPU_NUM 分发任务时,所有机器都以此值计算可分配任务量。默认为空。 16 TB_LOCAL_CONTAIN_PATTERN 根据关键字指定必须分发在client编译的target,此target生成的产物不需要文件传输回主节点。默认为空。 file_contexts.bin,com.android.vndk.current.,out/soong/host/linux-x86/bin/fileslist TB_LOCAL_NOT_CONTAIN_PATTERN 根据关键字指定必须不分发在client编译的target。默认为空。 Bluetooth.so TB_CAPACITY_ALL 单台机器可分配的任务权值上限,单位是分钟,以json文件的时间为参考,此时间为单纯的构建时间,不包括cpu空闲时间,实际构建时间会大于此值。可以指定为小数。超过此上限的target会分发至client,在所有agent编译完成后在本地最后编译。不设置时会根据json文件自动设置。 5.5 TB_TASK_SIZE_ALL 人工指定分割多少份target,可以大于机器数量,建议设置的值略大于机器数量,不建议少于机器数量,会导致机器浪费。不设置时会根据机器数量自动设置。 8 表3 ninja文件缓存选项 参数项 说明 示例 TB_CACHE_SERVER_IP ninja文件缓存开关,和TB_CACHE_ARCHIVE_PATH同时设置时缓存才会开启。 非空值:开启,如果开启了远端缓存,该值视为远端服务器IP。 空值:关闭(默认)。 172.example.example.example TB_CACHE_ARCHIVE_PATH ninja文件缓存本地归档目录,和TB_CACHE_SERVER_IP同时设置时缓存才会开启。 AOSP/ninja_cache TB_CACHE_RECACHE 本次构建会重新生成ninja文件缓存,不会命中历史缓存。 1:开启。 0:关闭(默认)。 1 TB_CACHE_REMOTE ninja文件缓存远端开关,命中时从远端获取缓存,生成缓存时也会归档至远端。 1:开启。 0:关闭(默认)。 1 TB_CACHE_LOCAL ninja文件缓存本地开关,命中时从本地获取缓存,优先级高于远端缓存,生成缓存时也会归档至本地。 1:开启(默认)。 0:关闭。 1 TB_CACHE_DEPENDS 增加指定的文件作为缓存命中的依赖文件,如果该文件产生变化,会使缓存不命中。默认为空。多个文件使用逗号分隔。 build.sh,test.sh TB_CACHE_VERSION 为缓存增加指定的版本号,如果版本号产生变化,会使缓存不命中。默认为空。 1.0 TB_CACHE_EXCLUDE_KEY 缓存时过滤掉带关键字的文件,多个关键字用逗号分隔,默认设置为“.glob”,可以用空字符串重置。 .so,.glob TB_NINJA_FILE_CACHE 设置被缓存的目录,多个目录使用逗号分隔,默认设置为“out”。 out,test TB_CACHE_NINJA_CACHE_SIZE ninja文件缓存本地归档目录空间上限,超过此上限会根据算法自动清理历史缓存。默认设置为50,单位是G。 100 TB_SKIP_TARGET 归档ninja文件缓存时跳过此target,即使命中ninja文件缓存此target也会重新编译。 update-api
  • steps参数项详解 steps配置项定义了构建过程,示例中包含如下两个步骤:PRE_BUILD(构建前准备)和BUILD(编译构建)。 PRE_BUILD 此阶段主要做代码下载,参数解释如下: 1 2 3 4 5 6 7 8 9 PRE_BUILD: - checkout: # 代码下载步骤 name: "代码下载" # 步骤名称,可自定义 inputs: # 步骤参数 scm: "codehub " # 代码来源:只支持Repo url: "git@codehub.devcloud.example.example.com:test/python3.git" # 拉取代码的ssh地址。 branch: "master" # 拉取的代码分支。 lfs: false # 选择是否开启Git LFS,false关闭、true开启。构建默认不拉取音视频、图像等大型文件,开启Git LFS后,构建将会全量拉取文件。 submodule: false # false关闭、true开启。开启该功能,系统在构建时会自动拉取子模块仓库的代码。 BUILD 此阶段主要定义了download_artifact插件、tbuild_execute插件和upload_artifact插件,参数解释如下: 1 2 3 4 5 6 7 8 9 10 11 12 BUILD: - tbuild_execute: # AOSP加速场景下固定配置,定义tbuild_execute插件 inputs: # 固定配置 image: "swr.xx-xx-x.myxxcloud.com/buildimage:AOSP" # 构建使用的镜像,参考加速前准备章节制作docker镜像。 command: "mv /example/TB1.json AOSP/TB1.json && cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" # command为构建使用的命令,此处将构建分解为两个段落,准备和执行 # mv /example/TB1.json AOSP/TB1.json 是依赖解析模式独有的准备步骤,文件名字固定,如果工程中存在多个ninja构建,则文件的下标依次增加,例如TBTrace_droid_2.json和TB2.json,以此类推。 # 准备阶段:在代码仓根目录新建build.sh,内容见build.sh样例 # 构建阶段:依照加速级别调用加速命令(BuildAccelerateL1 BuildAccelerateL3)的AOSP模式(-AOSP)直接执行构建,此处样例取值BuildAccelerateL3 -AOSP # 后处理阶段:以实际工程需要为准,该示例仅使用post_build.sh # 依赖解析模式实际命令最终拼接为"mv /example/TB1.json AOSP/TB1.json && cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" # 产物分类模式实际命令最终拼接为"cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" build.sh样例: 1 2 3 source build/envsetup.sh lunch aosp_x86_64-eng make -j64
  • 配置示例1:依赖解析模式 获取json文件。 在分支A编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: 2.0 params: - name: TB_GET_ORI_TRACE value: "1" steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:AOSP" command: "cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && mv out/TBTrace_droid_1.json /example/TB1.json" 执行分布式构建。 在分支B编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 version: 2.0 params: - name: TB_BUILDTRACE_ALL value: "1" - name: TB_RSYNC value: ${WORKSPACE}/AOSP/:out/target/product/generic_x86_64 steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:AOSP" command: "mv /example/TB1.json AOSP/TB1.json && cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh"
  • 通过BuildFlow组织加速构建 构建加速需要结合多任务代码化构建使用,可参考多任务YAML文件结构详解中的部分配置。 BuildFlow配置方法如下样例: 1 2 3 4 5 6 7 buildflow: jobs_resolver: # 必配 provider: tbuild_jobs_resolver # 必配,固定值 jobs: # 需要进行编排的任务集 - job: distribute_job # 构建任务名称 build_ref: accelerate.yml # 指定构建加速脚本,脚本名称可自定义 worker: 2 # 指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速 参数说明如下: jobs_resolver:buildflow的子节点,必配。 provider:此处使用的provider为jobs_resolver的高级选项,意为指定job对应的任务解析器,取值固定为tbuild_jobs_resolver。 jobs:需要进行编排的任务集,此处的jobs作为jobs_resolver的子节点,与普通构建场景buildflow下的jobs子节点有所区别,配置时请注意缩进。 job:构建任务名称,可自定义。 build_ref:该构建任务在构建过程中需要运行的加速构建脚本。 worker:指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速。
  • 约束与限制 增量编译技术需结合L3级别加速使用。 使用AOSP构建加速能力需要购买配套构建加速包,购买方法请参考购买增值特性。 该功能目前仅支持“华北-北京四”区域、代码源为CodeArts Repo的C/C++语言构建工程的编译构建加速。 本章节配置仅支持L1、L3级别的加速。 构建过程中不允许直接覆盖LD_LIBRARY_PATH和LD_PRELOAD环境变量,建议通过追加的方式使用,例如: 1 "export LD_LIBRARY_PATH=new_path:${LD_LIBRARY_PATH}"
  • 加速前准备 在一般的构建工程中,其构建过程大致分为构建前准备(工具链、代码仓)、构建依赖件准备(ninja文件生成)、编译构建、构建后操作(打包、检查等)。其中,构建加速介入编译构建阶段,对此前的构建过程中生成的构建依赖件进行解析,并执行编译。 在配置构建加速前,需如下准备: 找到构建依赖件准备的节点,以AOSP为例,一个形态的编译命令如下: 1 2 3 source build/envsetup.sh lunch aosp_x86_64-eng make -j64 准备好构建使用的docker镜像,基于该docker镜像制作新镜像:在dockerfile中增加“/opt/buildtools”目录供加速工具部署,并确保构建用户对“/opt/buildtools”目录有权限写入。参考命令如下: 1 RUN mkdir -p /opt/buildtools && chmod -R 777 /opt/buildtools
  • 图形化构建 在配置构建步骤中,添加“PHP构建”构建步骤,参考表1配置参数。 表1 PHP构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置PHP命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考PHP官网。 说明: 第3行默认命令中“http://mirrors.huaweicloud.com/repository/php/”为官网仓库地址,如果用户访问不了该地址会导致构建失败,需替换成用户可以访问的仓库地址。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 version: 2.0 # 必须是2.0 steps: BUILD: - php: inputs: command: |- composer config -g secure-http false composer config -g repo.packagist composer http://mirrors.tools.huawei.com/php/ composer install tar -zcvf php-composer.tgz * ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置PHP命令。更多命令使用方法可参考PHP官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“mono”构建步骤,参考表1配置参数。 表1 mono构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置mono命令,一般使用界面上系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 version: 2.0 # 必须是2.0 steps: BUILD: - mono: inputs: command: | nuget sources Disable -Name 'nuget.org' nuget sources add -Name 'xxcloud' -Source 'https://repo.xxcloud.com/repository/nuget/v3/index.json' nuget restore msbuild /p:OutputPath=../buildResult/Release/bin zip -rq ./archive.zip ./buildResult/Release/bin/* ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置mono执行命令。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“Grunt构建”构建步骤,参考表1配置参数。 表1 Grunt构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Grunt命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考Grunt官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 version: 2.0 # 必须是2.0 steps: BUILD: - grunt: inputs: command: |- npm config set registry http://7.223.219.40/npm/ #npm cache clean -f #npm audit fix --force npm install --verbose grunt npm run build ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置Grunt命令。更多命令使用方法可参考Grunt官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 version: 2.0 # 必须是2.0 steps: BUILD: - gulp: inputs: command: |- export PATH=$PATH:~/.npm-global/bin npm config set registry http://mirrors.tools.huawei.com/npm/ npm config set prefix '~/.npm-global' #如需安装node-sass #npm config set sass_binary_site https://repo.huaweicloud.com/node-sass/ #npm install node-sass #加载依赖 npm install -verbose gulp ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置gulp命令。更多命令使用方法可参考gulp官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“gulp构建”构建步骤,可参考表1配置参数。 表1 gulp构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置gulp命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考gulp官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 图形化构建 在配置构建步骤中,添加“Yarn构建”构建步骤,可参考表1配置参数。 表1 Yarn构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Yarn命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考Yarn官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 version: 2.0 # 必须是2.0 steps: BUILD: - yarn: inputs: command: |- #nodejs 版本小于18时,可以设置下面的值 npm config set cache-folder /yarncache npm config set registry http://mirrors.tools.huawei.com/npm/ npm config set disturl http://mirrors.tools.huawei.com/nodejs npm config set sass_binary_site http://mirrors.tools.huawei.com/node-sass/ npm config set phantomjs_cdnurl http://mirrors.tools.huawei.com/phantomjs npm config set chromedriver_cdnurl http://mirrors.tools.huawei.com/chromedriver npm config set operadriver_cdnurl http://mirrors.tools.huawei.com/operadriver npm config set electron_mirror http://mirrors.tools.huawei.com/electron/ npm config set python_mirror http://mirrors.tools.huawei.com/python #nodejs 版本大于等于18时,可以设置下面的值 #npm config set registry http://mirrors.tools.huawei.com/npm/ npm config set prefix '~/.npm-global' export PATH=$PATH:~/.npm-global/bin #yarn add node-sass-import --verbose yarn install --verbose yarn run build tar -zcvf demo.tar.gz ./** ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置Yarn命令。更多命令使用方法可参考Yarn官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: 2.0 # 必须是2.0 steps: BUILD: - upload_obs: inputs: artifact_path: "**/target/*.?ar" bucket_name: codecitest-obs obs_directory: "./" # artifact_dest_name: "" # upload_directory: true # headers: # x-frame-options: true # test: test # commit: ${commitId} ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 artifact_path string 可选参数。 构建结果所在路径,OBS存储文件名为空时,可使用通配符上传多个文件。如:maven可以使用**/target/*.?ar匹配所有构建出来的jar包和war包。 举例说明: *.class:当前目录下匹配“.class”结尾的文件。 **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。 test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。 **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。 默认值:bin/*。 bucket_name string 填写目标OBS的桶名(不支持跨region上传)。 obs_directory string 可选参数。 填写构建结果在OBS上的存储目录(如:application/version/),可留空,或填写“./”表示存储到OBS根目录。 默认值:./。 artifact_dest_name string 可选参数。 填写构建结果在OBS上的存储文件名(不包含目录)。 留空时可上传多个文件,将构建产物文件名作为OBS存储文件名。 不为空时只能上传单个文件,如:application.jar。 upload_directory bool 可选参数。 配置是否上传文件夹。 true:构建产物的文件夹也会同步上传。 false:会将匹配到的所有构建产物平铺上传到obs_directory的目录下。 默认值:false。 headers map 可选参数。 上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。 例如:“x-frame-options”参数值配置为“false”,则表示禁止OBS中存放的网页被第三方网页嵌入。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“上传文件到OBS”构建步骤,参考表1配置参数。 表1 上传文件到OBS参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 授权用户 选择需要推送的OBS所属用户。 当前用户:上传到当前用户的OBS桶。 其他用户:可以通过选择 IAM 账号的方式上传到指定用户的OBS中。 IAM账号 在下拉框中选择上传文件到OBS前的准备工作中创建的“IAM账户”服务扩展点,通过服务扩展点推送至其他用户的OBS中。 当“授权用户”选择“其他用户”时需要配置该参数。 构建产物路径 构建结果所在路径,OBS存储文件名为空时,可使用通配符上传多个文件。如:maven可以使用**/target/*.?ar匹配所有构建出来的jar包和war包。 举例说明: *.class:当前目录下匹配“.class”结尾的文件。 **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。 test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。 **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。 桶名 填写目标OBS的桶名(不支持跨region上传)。 OBS存储目录 可选参数。 填写构建结果在OBS上的存储目录(如:application/version/),可留空,或填写“./”表示存储到OBS根目录。 OBS存储文件名 可选参数。 填写构建结果在OBS上的存储文件名(不包含目录)。 留空时可上传多个文件,将构建产物文件名作为OBS存储文件名。 不为空时只能上传单个文件,如:application.jar。 是否上传文件夹 配置是否开启上传文件夹。 是:同步上传文件夹。 否:仅上传文件。 忽略文件夹路径 可选参数。 配置忽略的文件夹路径。当上传文件夹时,会根据此路径忽略部分文件夹,不上传到OBS。 如产物路径填写为“target/api/api.jar”,忽略文件夹路径填写为“target”,obs存储目录为“./”,则会将“api.jar”上传到OBS桶的“api/api.jar”路径下。若路径无法匹配,则默认不忽略路径中的文件夹。 当“是否上传文件夹”设置为“是”时,需要配置该参数。 OBS头域 可选参数。 上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。 如:“键”填写“x-frame-options”,“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 检查代码仓其他分支的代码 代码检查服务支持按分支、仓库标签、MR请求和CommitID筛选代码仓,执行代码检查任务。 在代码检查详情页面可以手动选择代码仓。具体操作指导如下: 单击代码检查任务名称。 在“代码检查详情”页面,默认显示“概览”页签,单击可以通过分支、仓库标签、MR请求和CommitID筛选代码仓进行代码检查。 图1 筛选代码仓 设置筛选条件后,单击“开始检查”,等待代码检查任务执行完成。 再次单击代码检查任务所在行的执行检查任务时,检查的代码分支会自动变更为创建检查任务时设置的默认分支。
  • 数据质量:可控可检验 数据质量模块支持对数据质量进行监控,数据质量可检验,帮助用户及时发现数据质量问题。 数据质量监控 数据质量监控是对数据库里的数据质量进行质量管理的工具,您可以配置数据质量检查规则,在线监控数据准确性。 数据质量可以从完整性、有效性、及时性、一致性、准确性、唯一性六个维度进行单列、跨列、跨行和跨表的分析,也支持数据的标准化,能够根据数据标准自动生成标准化的质量规则,支持周期性的监控。 图4 数据质量规则体系
  • 数据集成:多种方式异构数据源高效接入 数据集成提供30+同构/异构数据源之间数据集成的功能,帮助您实现数据自由流动。支持自建和云上的文件系统,关系数据库, 数据仓库 ,NoSQL,大数据云服务,对象存储等数据源。 数据集成基于分布式计算框架,利用并行化处理技术,支持用户稳定高效地对海量数据进行移动,实现不停服数据迁移,快速构建所需的数据架构。 图1 数据集成 数据集成提供全向导式任务管理界面,帮助用户在几分钟内完成数据迁移任务的创建,轻松应对复杂迁移场景。数据集成支持的功能主要有: 表/文件/整库迁移 支持批量迁移表或者文件,还支持同构/异构数据库之间整库迁移,一个作业即可迁移几百张表。 增量数据迁移 支持文件增量迁移、关系型数据库增量迁移、HBase增量迁移,以及使用Where条件配合时间变量函数实现增量数据迁移。 事务模式迁移 支持当迁移作业执行失败时,将数据回滚到作业开始之前的状态,自动清理目的表中的数据。 字段转换 支持去隐私、字符串操作、日期操作等常用字段的数据转换功能。 文件加密 在迁移文件到文件系统时,数据集成支持对写入云端的文件进行加密。 MD5校验一致性 支持使用MD5校验,检查端到端文件的一致性,并输出校验结果。 脏数据归档 支持将迁移过程中处理失败的、被清洗过滤掉的、不符合字段转换或者不符合清洗规则的数据自动归档到脏数据日志中,方便用户分析异常数据。并支持设置脏数据比例阈值,来决定任务是否成功。
  • 数据资产管理:360度全链路数据资产可视化 DataArts Studio 提供企业级的元数据管理,厘清信息资产。数据资产管理可视,支持钻取、溯源等。通过数据地图,实现数据资产的数据血缘和数据全景可视,提供数据智能搜索和运营监控。 元数据管理 元数据管理模块是 数据湖 治理的基石,支持创建自定义策略的采集任务,可采集数据源中的技术元数据。支持自定义业务元模型,批量导入业务元数据,关联业务和技术元数据、全链路的血缘管理和应用。 图5 全链路数据血缘 数据地图 数据地图围绕数据搜索,服务于数据分析、数据开发、数据挖掘、数据运营等数据表的使用者和拥有者,提供方便快捷的数据搜索服务,拥有功能强大的血缘信息及影响分析。 在数据地图中,可通过关键词搜索数据资产,支持模糊搜索,快速检索,定位数据。 使用数据地图根据表名直接查看表详情,快速查阅明细信息,掌握使用规则。获得数据详细信息后,可添加额外描述。 通过数据地图的血缘分析可以查看每个数据表的来源、去向,并查看每个表及字段的加工逻辑。 对数据资产,可以从业务角度定义分类或标签。
  • 数据架构:数据建模可视化、自动化、智能化 DataArts Studio数据架构践行 数据治理 方法论,将数据治理行为可视化,打通数据基础层到汇总层、集市层的数据处理链路,落地数据标准和数据资产,通过关系建模、维度建模实现数据标准化,通过统一指标平台建设,实现规范化指标体系,消除歧义、统一口径、统一计算逻辑,对外提供主题式数据查询与挖掘服务。 图2 数据架构 DataArts Studio数据架构主要包括以下三个部分: 主题设计 构建统一的数据分类体系,用于目录化管理所有业务数据,便于数据的归类,查找,评价,使用。通过分层架构对数据分类和定义,可帮助用户厘清数据资产,明确业务领域和业务对象的关联关系。 数据标准 构建统一的数据标准体系,数据标准流程化、系统化。用户可基于国家标准或行业标准,对每一行数据、每一个字段的具体取值进行标准化,从而提升数据质量和易用性。 数据建模 构建统一的数据模型体系,通过规范定义和数据建模,自顶向下构建企业数据分层体系,沉淀企业数据公共层和主题库,便于数据的流通、共享、创造、创新,提升数据使用效率,极大的减少数据冗余,混乱,隔离,不一致以及谬误等。 DataArts Studio数据架构支持的数据建模方法有: 关系建模 关系建模是用实体关系(Entity Relationship,ER)模型描述企业业务,它在范式理论上符合3NF,出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。 维度建模 维度建模是以维度建模理论为基础,构建总线矩阵、抽象出事实和维度,构建维度模型和事实模型,同时对报表需求进行抽象整理出相关指标体系,构建出汇总模型。 数据集市 又称为DM(Data Mart),DM面向展现层,数据有多级汇总,由一个特定的分析对象及其相关的统计指标组成的,向用户提供了以统计粒度为主题的所有统计数据。
  • 数据安全:全方位安全保障 网络安全 基于网络隔离、安全组规则以及一系列安全加固项,实现租户隔离和访问权限控制,保护系统和用户的隐私及数据安全。 用户权限策略 基于角色的访问控制,用户通过角色与权限进行关联,并支持细粒度权限策略,可满足不同的授权需求。针对不同的用户,DataArts Studio提供了管理者、开发者、部署者、运维者、访客五种不同的角色,各个角色拥有不同的权限。 数据安全 针对数据架构、数据服务等关键流程,DataArts Studio提供了审核流程。 数据的分级分类管理,数据的全生命周期管理,保证数据的隐私合规、可回溯。
  • 使用模板创建测试工程 登录性能测试服务控制台,在左侧导航栏中选择“总览”,进入总览页。 PerfTest定义了如下模板: 选择一网通办系统场景,一网通办系统测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择流媒体场景,流媒体测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择秒杀场景,秒杀测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择电商场景,电商测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择极速创建场景,极速创建测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 可根据实际业务需求修改测试用例,详细操作请参见PerfTest测试用例管理。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“检查点”页签,参照表1设置基本信息。 表1 检查点参数 参数 参数说明 启用结果检查 启用检查点后,通过自定义校验信息来验证服务端的返回内容是否正确。 重试次数 请求失败后,进行重试的次数,直到该请求成功,取值范围为0~100。 重试的请求在报告中不统计,例如响应时间、RPS、成功率等,报告中仅统计最后一次的数据。 重试间隔 请求失败后,下一次重试请求执行的时间间隔,单位毫秒(ms),取值范围为0~3600000,即最大时间间隔为1小时。 响应码 仅在“报文”页签中“协议类型”为“HTTP”或者“HTTPS”时,需要设置。 响应报文携带的HTTP/HTTPS协议响应状态码,通常包括1XX,2XX,3XX,4XX和5XX。 头域 仅在“报文”页签中“协议类型”为“HTTP”或者“HTTPS”时,需要设置。 HTTP/HTTPS协议的Header部分。 单击“添加头域检查”。 设置“头 域名 ”,详情请参见头域说明。 设置检查条件。 设置内容。 响应内容 HTTP/HTTPS/TCP/UDP/WEBSOCKET/MQTT协议的Body部分,为HTTP/HTTPS/TCP/UDP/WEBSOCKET/MQTT协议请求、响应的负载部分。 单击“添加内容检查”。 设置检查条件。 条件规则 AND:需要全部符合才能检查通过。 OR:只需一条符合即可检查通过。 配置完成后,单击“保存”。
  • 查看私有资源组信息 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”。 在资源组列表中,可查看到如下表所示的私有资源组信息。 表3 私有资源组信息说明 信息名称 信息说明 私有资源组名称 创建私有资源组时输入的名称。 私有资源组状态 运行中 异常 需升级 部署中 执行器数 占用执行器数/执行器总数。 高性能测试工程的单执行器支持并发:HTTP/HTTPS(5000),WebSocket(5000),MQTT(5000),JMeter(1000),HLS/RTMP/HTTP-FLV(1000)。 当前并发 当前私有资源组内所有节点集群当前并发相加的和。 调试节点 创建私有资源组时选择的调试节点。 执行节点 资源组内所有节点集群的执行节点。单击“更多”,可以查看到该资源组全部执行节点。 创建时间 私有资源组创建的时间。 修改时间 私有资源组最后一次修改的时间。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“思考时间”页签,参照表1设置基本信息。 表1 思考时间参数 参数 参数说明 启用思考时间 启用思考时间后,当您接收到来自服务器的数据时,可能要等待几秒查看数据,然后再做出响应。 思考时间 思考时间是指用户在执行两个连续操作期间的等待时间。如用户在登录和搜索之间停留的时间。 例如,某用例每运行一次响应时间为 0.5 秒。 如果希望每秒执行两次用例请求,则不添加请求信息类型为“思考时间”的用例请求信息。 如果希望每秒只执行一次用例请求,思考时间调整为1秒。如果思考时间设置为1秒而响应时间大于1秒,则思考时间不会生效,按响应时间发送压测请求。 配置完成后,单击“保存”。
  • 插入变量 添加请求信息时,在输入框内输入“$”,插入变量。 “变量类型”为“自定义变量”时,需要设置如下参数: 变量范围:选择变量范围。 变量名称:自定义变量名称。自定义变量名称为添加变量时为变量取的名称。 “变量类型”为“系统变量”时,需要选择函数名称: 身份证号:随机生成一个身份证号。 手机号:随机生成一个手机号。 区间随机数:根据用户输入区间,随机生成区间内的任一整数。 随机字符串:根据用户输入的位数(1-32),随机生成小写字母和数字混合的字符串。 时间戳:根据用户选择(秒(s)/毫秒(ms)),生成执行时当前时间戳(秒(s)对应10位,毫秒(ms)对应13位)。 时间格式化:根据指定格式输出当前时间,支持时间偏移(单位为秒)。 时间格式化格式说明如下: "yyyy":表示四位数的年份,例如2024年:2024 "yy":表示两位数的年份,例如2024年:24 "MM":表示两位数的月份,例如1月:01 "M":表示前不补零的月份,例如1月:1 "dd":表示两位数的日期,例如3日:03 "d":表示前不补零的日期,例如3日:3 "HH":表示24小时制的小时数,例如下午1点:13 "H":同HH "hh":表示12小时制的小时数,例如1点:01 "h":表示前不补零的24小时制小时数,例如1点:1 "mm":表示分钟数,例如4分:04 "m":表示前不补零的分钟数,例如4分:4 "ss":表示秒数,例如5秒:05 "s":表示前不补零的秒数,例如5秒:5 "SSS":表示毫秒数,例如98毫秒:098 UUID:随机生成一个32位的字符串。 “变量类型”为“加密函数”时,需要选择加密类型和变量插入的位置,加密类型如下: MD5:对val数据进行md5加密,返回加密后的数据字符串。 MD5-BASE64:对val数据进行MD5-BASE64编码,返回编码后的数据字符串。 SHA-1:对输入的数据进行SHA-1加密,返回加密后的数据字符串。 SHA-224:对输入的数据进行SHA-224加密,返回加密后的数据字符串。 SHA-256:对输入的数据进行SHA-256加密,返回加密后的数据字符串。 SHA-384:对输入的数据进行SHA-384加密,返回加密后的数据字符串。 SHA-512:对输入的数据进行SHA-512加密,返回加密后的数据字符串。 BASE64编码:对输入的数据进行BASE64编码,返回编码后的数据字符串。 BASE64解码:对输入的数据进行BASE64解码,返回解码后的数据字符串。 父主题: 设置全局变量
  • 变量读取规则 无论是手工输入方式还是文件变量导入的方式添加变量,选择不同的变量读取模式和变量共享模式时变量读取规则如下表1。 表1 变量读取规则 变量读取模式 变量共享模式 概述 举例 顺序模式 用例模式 每个并发按顺序读取一个变量值。 例如,10并发压力模式下的任务,在执行过程中,不同并发按照顺序读取变量中的值。 顺序模式 并发模式 每个并发单独复制一个同名变量进行使用,不同并发按顺序读取变量值,相互不影响。 例如,10并发压力模式下的任务,在执行过程中,每个并发均从复制的变量中,按照顺序往下读取相应的变量值。 随机模式 用例模式 每个并发随机读取一个变量值。 例如,10并发压力模式下的任务,在执行过程中,不同的并发随机获取变量中的值。 随机模式 并发模式 每个并发单独复制一个同名变量进行使用,不同并发随机读取变量值,相互不影响。 例如,10并发压力模式下的任务,在执行过程中,每个并发均从复制的变量中,随机读取相应的变量值。 假设变量number有三个变量值分别为1、 2、 3, 存在两个并发A和B。 两个并发在顺序模式下: 用例模式:A并发读取变量number的1,B并发接着读取变量number的2,一直按顺序循环读取。 并发模式:A并发读取一个复制的变量number(副本),从头开始读起,读取1。B并发读取一个复制的变量number(副本),从头开始读起,也读取1。 两个并发在随机模式下: 读取变量值的方式与顺序模式一致,但因为是每次都是随机的,所以用例模式和并发模式的使用效果一样。 父主题: 设置全局变量
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全