华为云用户手册

  • 更新OBSA-HDFS工具 下载与hadoop版本配套的OBSA-HDFS工具:下载地址。 并将OBSA-HDFS工具jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)上传到CDH各节点/opt/obsa-hdfs目录中。 hadoop-huaweicloud-x.x.x-hw-y.jar包含义:前三位x.x.x为配套hadoop版本号;最后一位y为OBSA版本号,y值最大为最新版本。如:hadoop-huaweicloud-3.1.1-hw-53.8.jar,3.1.1是配套hadoop版本号,53.8是OBSA的版本号。 如hadoop版本为3.1.x,则选择hadoop-huaweicloud-3.1.1-hw-53.8.jar。 增加hadoop-huaweicloud的jar包。 在CDH集群各节点执行以下命令,命令请根据hadoop-huaweicloud的jar包名字及实际CDH版本进行适配使用。 执行如下命令,将OBSA-HDFS工具的jar包放到/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/目录中。 cp /opt/obsa-hdfs/hadoop-huaweicloud-3.1.1-hw-53.8.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/ 执行如下命令,建立各目录的软连接,将hadoop-huaweicloud的jar包放入如下目录。 ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud-3.1.1-hw-53.8.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-navigator-server/libs/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/common_jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/lib/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-scm-telepub/libs/cdh6/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop/client/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/spark/jars/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/impala/lib/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hadoop-mapreduce/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/lib/cdh5/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-scm-telepub/libs/cdh5/hadoop-huaweicloud.jar ln -s /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/jars/hadoop-huaweicloud.jar /opt/cloudera/cm/cloudera-navigator-server/libs/cdh5/hadoop-huaweicloud.jar
  • 创建和配置域名托管 为了方便对您的自定义域名和静态网站统一管理,实现业务全面云化,您可以直接在华为云提供的云解析服务(Domain Name Service,DNS)上托管您的自定义域名。托管完成后,后续域名解析的管理都可以在云解析服务上进行,包括:管理记录集、管理反向解析、设置域名泛解析等等。 您也可以直接在域名注册商域名解析中,根据是否开启 CDN加速 来添加一条别名记录。 如果绑定自定义域名时开启了CDN加速,则添加的别名记录需指向CDN提供的加速域名。例如:域名“www.example.com”开启CDN加速后的加速域名为“www.example.com.c.cdnhwc1.com”,则需要在域名注册商添加一条值为“www.example.com CNAME www.example.com.c.cdnhwc1.com”的记录。 如果绑定自定义域名时未开启CDN加速,则添加的别名记录需指向桶的访问域名。例如:桶“example”所处区域“华北-北京一”,则需要在域名注册商添加一条值为“www.example.com CNAME example.obs.cn-north-1.myhuaweicloud.com”的记录。 使用云解析服务创建和配置域名托管的操作步骤如下: 创建公网域名。 在云解析服务中创建公网域名,使用准备工作中注册的根域名“example.com”作为创建公网域名。详细的创建方法请参见配置网站解析章节中的“添加域名”部分内容。 添加别名记录。 在云解析服务中为托管域名子域名“www.example.com”添加记录集,配置该子域名别名指向OBS的静态网站托管域名。在添加别名记录时参数配置如下: 主机记录:输入“www”。 类型:选择“CNAME – 将域名指向另外一个域名”。 线路类型:选择“全网默认”。 TTL(秒):保持默认。 值:需指向的域名。如果绑定自定义域名时没有开启CDN加速,此处填写OBS的桶的静态网站托管域名;如果开启了CDN加速,此处填写CDN提供的加速域名(即CNAME)。 详细的创建方法请参见增加CNAME类型记录集。 在域名注册商处修改域名解析服务器地址。 在域名注册商处,将该根域名对应的NS记录中域名解析服务器地址修改为云解析服务(DNS)服务器的地址,具体地址为云解析服务中该公网域名记录集中NS记录的值字段内容信息。 详细的更改域名解析服务器地址的方法请参见配置网站解析章节中的“更改域名的DNS服务器”部分。 更改后的域名解析服务器地址将于48小时内生效,具体生效时间请以域名注册商处的说明为准。 父主题: 实施步骤
  • 对接步骤 以flume 1.9版本为例。 下载apache-flume-1.9.0-bin.tar.gz。 安装flume。 解压apache-flume-1.9.0-bin.tar.gz到/opt/apache-flume-1.9.0-bin目录。 已部署Hadoop的环境:无需额外操作,部署Hadoop请参见Hadoop对接OBS。 未部署Hadoop的环境: 将hadoop中的相关jar包复制到/opt/apache-flume-1.9.0-bin/lib目录下,包含hadoop-huaweicloud-xxx.jar。 将添加了OBS相关配置的core-site.xml文件复制到/opt/apache-flume-1.9.0-bin/conf目录下。 验证是否对接成功。 示例:以flume内置的StressSource为source,以file为channel,以obs为sink。 创建flume配置文件:sink2obs.properties。 agent.sources = r1 agent.channels = c1 agent.sinks = k1 agent.sources.r1.type = org.apache.flume.source.StressSource agent.sources.r1.channels = c1 agent.sources.r1.size = 1024 agent.sources.r1.maxTotalEvents = 100000 agent.sources.r1.maxEventsPerSecond = 10000 agent.sources.r1.batchSize=1000 agent.sources.r1.interceptors = i1 agent.sources.r1.interceptors.i1.type = host agent.sources.r1.interceptors.i1.useIP = false agent.channels.c1.type = file agent.channels.c1.dataDirs = /data/agent/flume-data agent.channels.c1.checkpointDir = /data/agent/flume-checkpoint agent.channels.c1.capacity = 500000 agent.channels.c1.transactionCapacity = 50000 agent.sinks.k1.channel = c1 agent.sinks.k1.type = hdfs agent.sinks.k1.hdfs.useLocalTimeStamp = true agent.sinks.k1.hdfs.filePrefix = %{host}_k1 agent.sinks.k1.hdfs.path = obs://obs-bucket/flume/create_time=%Y-%m-%d-%H-%M agent.sinks.k1.hdfs.fileType = DataStream agent.sinks.k1.hdfs.writeFormat = Text agent.sinks.k1.hdfs.rollSize = 0 agent.sinks.k1.hdfs.rollCount = 1000 agent.sinks.k1.hdfs.rollInterval = 0 agent.sinks.k1.hdfs.batchSize = 1000 agent.sinks.k1.hdfs.round = true agent.sinks.k1.hdfs.roundValue = 10 agent.sinks.k1.hdfs.roundUnit = minute 执行以下命令,启动flume agent。 ./bin/flume-ng agent -n agent -c conf/ -f conf/sink2obs.properties
  • 方式一:使用obsutil校验上传对象的一致性 obsutil支持在上传对象时通过附加参数(vmd5)来校验数据的一致性。 以在Windows操作系统上传本地一个位于D盘的test.txt文件至mytestbucket桶为例,开启一致性校验的命令示例如下: obsutil cp D:\test.txt obs://mytestbucket/test.txt -vmd5 校验通过后,对象上传成功,系统显示Upload successfully的回显信息。
  • 方式二:使用OBS Browser+校验上传对象的一致性 OBS Browser+默认关闭MD5校验,在OBS Browser+上启用MD5校验一致性并上传对象的步骤如下: 登录OBS Browser+。 单击客户端右上方的,并选择“高级设置”。 勾选“MD5校验”,如图1所示。 图1 配置MD5校验 单击“确定”。 选择待上传文件的桶,上传文件。 如果MD5校验成功,则文件上传成功。 如果MD5校验失败,则文件上传失败,且在任务管理中提示失败原因:校验文件MD5失败。
  • 方式三:使用OBS SDK校验上传对象的一致性 OBS提供Java、Python等多种语言的SDK,各SDK通过在上传对象时设置对象的Content-MD5值以开启一致性校验。如何计算并设置对象MD5值请前往OBS SDK参见各自开发指南的setObjectMetadata接口。 此处以使用OBS Java SDK上传Windows本地D盘一个名为text.txt的文本文件至mytestbucket为例,上传过程使用MD5值校验数据一致性的示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 String endPoint = "https://your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AC CES S_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 计算并设置MD5值 ObjectMetadata metadata = new ObjectMetadata(); File file = new File("D:\\text.txt"); FileInputStream fis = new FileInputStream(file); InputStream is = (InputStream)fis; String contentMd5 = obsClient.base64Md5(is); metadata.setContentMd5(contentMd5); // 带MD5值上传文件 obsClient.putObject("mytestbucket", "text.txt", file, metadata); 对象数据的MD5值必须经过Base64编码。 OBS服务端会将该MD5值与对象数据计算出的MD5值进行对比,如果不匹配则上传失败,返回HTTP 400错误。如果匹配,对象上传成功,返回HTTP 200状态码。
  • 邀请其他企业用户 可以通过邀请其他企业用户,对当前项目进行查看或编辑。 单击“添加成员”旁的下拉框,选择“邀请其他企业用户”。 弹出“邀请其他企业用户”对话框,在“企业用户”输入框中输入企业用户ID,在“用户名称”输入框中输入需要邀请的用户名称后,单击右侧“添加用户”,可一次性添加同一企业不同用户。 单击“确定”导入其他企业成员,默认为“浏览者”身份权限。可通过设置项目成员角色修改成员角色与权限。
  • 自定义请求 在测试用例中,可能需要调用项目之外的接口,例如在请求华为终端app前,需要调用账号服务的获取用户认证token。此时用户可以在测试步骤中添加自定义请求,自定义请求可以是任何 HTTP 请求,包括常见的 GET、POST、PUT、DELETE 等请求。 单击“URL请求”选项,添加“自定义URL请求”测试步骤。 在自定义请求中可编辑请求名称、地址和请求参数等信息,详细参照设置接口请求章节。
  • 从postman文件导入 接口自动化测试用例支持通过导入Postman文件,生成测试步骤。 导入Postman文件需满足以下要求: 支持Postman Collection v2.1标准。 仅支持Postman请求方法、请求URL、请求头、请求体生成测试步骤。 Postman请求体导入方式仅支持form-data、x-www-form-urlencode、raw。 Postman请求体form-data上传附件需要在测试步骤中单独上传。 单击“Postman”,弹出“导入Postman Colection文件”对话框。 上传需要导入的postman文件,单击“确定”,导入postman请求文件,完成测试步骤添加。
  • 从接口/接口用例导入 用户可以将API设计的数据导入测试步骤,主要有两个来源:“从【接口用例】导入(推荐)”和“从【接口】导入”。 从【接口用例】导入(推荐) 在弹出的“从【接口用例】导入(推荐)”对话框上,选择需要导入的接口,即“API设计”中接口的调试用例,参考保存为用例。 单击“导入”,完成测试步骤添加。 从【接口】导入 在弹出的“从【接口】导入”对话框上,选择需要导入的接口,即“API设计”的接口数据。 单击“导入”,完成测试步骤添加。
  • 新建变量 在“环境参数”页面,单击,即可添加一个变量,根据需要填写变量信息: 参数项 说明 名称 当前环境变量参数名,可使用“$${参数名}”形式进行引用。 类型 包括:文本、随机字符串、随机整数、时间戳、格式化时间戳、生成UUID、Base64编码、MD5哈希值、密码或认证信息、SHA512编码。 值 当前环境变量的值,支持加密显示。 描述 根据不同类型,自动添加默认描述,也可根据设计需要自定义描述。 敏感变量 勾选为敏感变量后,云测对参数值加密存储,在测试结果日志中使用星号覆盖处理。敏感数据类型适用并不限于个人信息、鉴权信息等,如:姓名、地址、用户名等。 动态变量 动态参数的值可以在用例执行过程中被赋值。动态参数初始值可为空,被赋值之后,此处显示的是最新值。 动态参数赋值方法:在用例测试步骤“响应提取”的“赋值给环境动态参数”中设置后,测试执行时,响应提取的内容将被赋值给动态参数。
  • 参数使用 环境参数可以用于整个项目,如:测试步骤的参数、检查点、变量、URL等都可以引用环境参数。 环境参数的引用形式为“$${参数名}”,如:参数名为“hostname”,则可以使用“$${hostname}”来引用该参数。可以按环境上下文配置环境参数,如:类生产环境中hostname=stage.example.com,生产环境中hostname=prod.example.com。测试执行时可选择环境执行。
  • 全局代理设置 使用系统代理 进入网络代理设置页面后,默认使用系统代理。 可根据需要选择是否优先使用系统环境变量HTTP_PROXY、HTTPS_PROXY、NO_PROXY,勾选后,CodeArts API会优先调用系统环境变量。 身份认证:请查看身份认证。 不使用代理 选择不使用代理时,此时CodeArts API不使用任何代理(包含系统代理)连接服务器。 自定义 选择自定义代理时,需配置“接口类型”、“代理服务器”、“身份认证”、“Proxy Bypass”。 接口类型:接口类型默认HTTP和HTTPS全选,支持两种协议类型的代理。 代理服务器:需输入代理服务器地址和端口。 身份认证:请查看身份认证。 Proxy Bypass:无需进行代理转发的IP或域名,可填入多个,以英文逗号进行分隔。
  • 创建测试套件 自动化测试套件,实现用例串行/并行执行的策略,测试用例分块加速能力,有效提高资源池利用率,减少任务阻塞情况。并且可提前拦截产品缺陷,更加快速地发现问题。 在“API测试”主页,单击“新建测试套件”。 在“新建测试套件”页面,填写用例名称与描述。 单击,弹出“添加测试用例”对话框,选择需要添加到测试套件的测试用例,单击“确定”。 单击,弹出“执行策略”对话框,根据需要配置执行策略,单击“确定”。 定时类型:执行一次、周期性重复执行,周期性指设置一个执行频率,测试套按照这个频率周期重复执行。 任务开始时间:立即执行、指定开始时间。 执行时间区间:全天执行、指定执行区间,即指定套件执行的时间段。 用例超时时间:设置每个用例的最长执行时间,超过时间,用例则超时失败。 任务继续执行,直到最后一个用例执行完毕。可设置分钟级,小时级,天级。 回到当前测试套件页面,单击右上角“保存“,完成自动化测试套件创建。 父主题: 测试套件管理
  • 内置参数 内置参数是将HTTP/HTTPS响应的对应部分参数化,在检查点、响应提取功能中的“来源”选项中可以选择内置参数。 内置参数如下表: 内置参数 参数说明 是否支持多级取值 用途 举例 响应体(json) 表示接口返回的响应体。 是 检查点的属性字段 参数传递的属性字段 检查点:判断响应体中的id等于100。 设置方法:设置检查点来源为响应体(JSON),属性为id(前提条件响应体JSON串有id字段),设置比较符为等于(字符串、不区分大小写),设置目标值为100。 响应头 表示接口返回的响应头。 是 检查点的属性字段 参数传递的属性字段 检查点:判断响应头中的token等于abcd。 设置方法:设置来源为响应头,属性为token(前提条件响应头有token),设置比较符为等于(字符串、不区分大小写),设置目标值为abcd。 响应码 表示接口返回的响应码。 否 检查点的属性或值字 变量的属性字段 检查点:判断响应码等于200。 设置方法:设置来源为响应码,设置比较符为等于(数字),设置目标值为200。 内置参数支持多级取值,例如: 响应体为“{"result":{"appId":12}}”时,则取appId的格式为:来源选择响应体,属性为“result.appId”。如果result是数组格式。则属性为“result[i].appId”,其中,i为非负整数。
  • 局部参数 局部参数使用范围是当前测试用例,如:测试步骤的参数、检查点、变量等都可以引用局部参数。 局部参数引用形式为“${参数名}”,如:参数名为“hostIp”,则可以使用“${hostIp}”来引用该参数。 局部参数主要配置项如下: 配置项 是否必填 描述 名称 是 支持中英文、数字、点号、中文短横线、下划线的半角字符,并且长度范围是1~300。 类型 是 支持文本、随机字符串、随机整数、时间戳、格式化时间戳、生成UUID、Base64编码、MD5哈希值、密码或认证信息、SHA512编码。 描述 否 对参数的简要描述,上限为3000字符。默认为当前参数类型的描述。 单击“文本框”后,用户可以直接输入文本描述。 单击,输入一个json,单击“Json转换”,可以给没有换行的Json添加换行和缩进,单击“回填”添加成功。 值 否 用户可以为不同类型的参数赋值。 敏感变量 否 勾选为敏感数据后,测试计划对参数值加密存储,在测试结果日志中使用星号覆盖处理。敏感数据类型适用并不限于个人信息、鉴权信息,例如姓名、地址、用户名等。 动态变量 否 动态参数的值可以在用例执行过程中被赋值。动态参数初始值可为空,被赋值之后,此处显示的是最新值。 动态参数赋值方法:在用例测试步骤“响应提取”的“赋值给环境动态参数”中设置后,在测试执行时,响应提取的内容将被赋值给动态参数。 参数类型: 名称 描述 文本 上限为10000字符,支持设置“敏感参数”、“动态参数” ,默认为否。 随机字符串 随机生成指定长度字符串,随机字符串的变量值长度校验范围【1-9999】,不支持设置“敏感参数”及“动态参数”。 随机整数 随机生成指定范围整数,区间范围校验为【-999999999~999999999】,不支持设置“敏感参数”及“动态参数” 。 例如:设置【-9999,9999】 ,会获取这个区间内的随机整数。 时间戳 无需输入,生成当前整数时间戳,不支持设置“敏感参数”及“动态参数”。 格式化时间戳 格式为yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,不支持设置“敏感参数”及“动态参数”。 例如: yyyy-MM-dd HH:mm:ss:33250825252000 , 预期值为3023-09-05 20:20:52。 yyyy-MM-dd:33250825252000,预期值为3023-09-05。 生成UUID 无需输入,不支持设置“敏感参数”及“动态参数”。 Base64编码 使用Base64方法编码参数,上限为256字符,不支持设置“敏感参数”及“动态参数”。 MD5哈希值 使用指定参数生成MD5哈希值,上限为256字符,不支持设置“敏感参数”及“动态参数”。 密码或认证信息 上限为256字符,不支持设置“敏感参数”及“动态参数”。默认勾选“敏感参数”。 SHA512编码 上限为256字符,不支持设置“敏感参数”及“动态参数”。默认勾选“敏感参数”。 数组 数组的内容是json数组格式,上限为10000字符,不支持设置“敏感参数”及“动态参数”。 局部参数管理 进入接口自动化用例编辑的“脚本”页签,进入“局部参数”管理页面。 单击左上方“新建变量”,输入参数名、类型、值,全部参数设置完毕,单击“保存”,完成局部参数设置。
  • 接口自动化用例系统关键字 接口自动化测试将常见的操作封装成关键字供用户使用,用于提升编写接口测试用例的效率。 使用系统关键字高阶特性,需要开通TestPlan专业版套餐或CodeArts专业版以上套餐。 表1 系统关键字一览表 分类 关键字集 认证类 认证类—Get IAM Token 认证类—OAuth2For OneAccess 数据库操作类 数据库类—MySQLQuery 数据库类—MySQLUpdate 数据库类—MySQLInsert 数据库类—MySQLDelete 数据库类—OpenGaussQuery 数据库类—OpenGaussUpdate 数据库类—OpenGaussInsert 数据库类—OpenGaussDelete 数据库类—PostgreSQLQuery 数据库类—PostgreSQLUpdate 数据库类—PostgreSQLInsert 数据库类—PostgreSQLDelete 数据库类—MongoDBQuery 数据库类—MongoDBInsert 数据库类—MongoDBUpdate 数据库类—MongoDBDelete 中间件类 中间件类—RedisGet 中间件类—RedisSet 中间件类—OBSWrite 中间件类—OBSDelete 中间件类—OBSQuery 中间件类—KafkaProducer 中间件类—KafkaConsumer 协议类 协议类—TCP 协议类—UDP 协议类—WSConnect 协议类—WSRequest 协议类—WSWriteOnly 协议类—WSReadOnly 协议类—WSDisConnect 协议类—MQTTConnect 协议类—MQTTDisconnect 协议类—MQTTPublish 协议类—MQ TTS ubscribe 协议类—DubboClient 具体请参考CodeArts Testplan的接口自动化用例系统关键字。
  • 关键字库入口 在“脚本”页签,页面右侧展示“关键字库”。 通过Swagger文件导入的关键字放置在关键字库的“接口”页签中,详细操作请参考接口关键字。 关键字用例和组合关键字放置在关键字库的“组合”页签中,支持从0到1创建新的组合关键字,详细操作请参考组合关键字。 认证类、数据库操作类、中间件类、协议类等实用关键字放置在“系统”页签中,详细操作请参考接口自动化用例关键字。 单击关键字库中“名称”下拉列表,可以按照“名称”、“描述”,搜索对应的关键字。
  • 接口关键字 接口关键字中定义单个接口的请求,可以通过导入Swagger文件、保存自定义URL请求等方式生成。 导入Swagger文件生成数据 在右侧“关键字库”界面,单击“导入接口”。 在弹出的“导入接口”页面,单击“点击添加文件或拖拽上传”,选择配置好的Swagger接口文档,单击“确定”,完成Swagger文件导入。 文档导入成功后,系统自动解析生成脚本模板,脚本模板包含了接口的基本描述信息。可以从“关键字库”界面单击“+”或直接拖拽接口添加至测试步骤,只需要按模板输入接口参数就可以进行测试。 具体请参考CodeArts Testplan的接口关键字。
  • 响应体(JSON)检查 检查响应体(JSON)中对象字段的值。例如: 响应体结构如下: 检查响应体对象中字段名为“status”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用下标确定对象,下标从0开始)。例如: 响应体结构如下: 检查响应体“result”数组的第1个元素对象字段名为“userId”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用模糊匹配功能确定对象)。例如: 响应体结构如下: a.检查响应体“result”数组下“name”是“啤酒”的所有对象取第1个之后获取id的值,检查点配置如下: 当获取的数组下的对象只有一个,“[0]”可以省略,示例中的表达式可以写为“result[name==啤酒].id”。 b.检查响应体“result”数组下“name”是“啤酒”的并且“obj”对象下属性“a”的值是“2”的对象的id值,检查点配置如下:
  • 比较符说明 支持以下比较类型: 比较类型 比较符 是否需要填入值 举例 数字比较 等于(数字) 不等于(数字) 大于等于(数字) 小于等于(数字) 大于(数字) 小于(数字) 是 响应码 等于 200 响应码 不等于 200 响应码 大于等于 200 响应码 小于等于 200 响应码 大于 200 响应码 小于 200 字符串比较 等于(字符串、区分大小写) 不等于(字符串、区分大小写) 等于(字符串、不区分大小写) 包含(字符串) 不包含(字符串) 是 响应体中的属性param1 等于 test 响应体中的属性param2 不等于 test 响应体中的属性param3 等于 TEST 响应体中的属性param4包含 tri 响应体中的属性param5不包含 tri 正则比较 正则表达式 是 响应体中的属性param1 正则表达式 ^[A-Za-z0-9]{1,32}$ 通用比较 是空(该字段是否为空,即是否没有该字段) 不是空(该字段是否不为空,即是否有该字段) 否 响应体中的属性param1 是空 响应体中的属性param2 不是空 Json数组比较 JSON数组为空数组(json数组是否为空数组) JSON数组为非空数组(json数组是否为非空数组) 否 响应体中的属性param1 JSON数组为空数组 响应体中的属性param2 JSON数组为非空数组 JSON数组的大小(json数组的大小是否为...) 是 响应体中的属性param1 JSON数组的大小 类型比较 是JSON类型(是否是json对象类型) 是JSON数组类型(是否是json数组类型) 否 响应体中的属性param1 是JSON类型 响应体中的属性param2 是JSON数组类型 Json对象比较 JSON等于(json等于) 是 响应体中的属性param1 JSON等于 {"name":"zhangsan"}
  • 检查点说明 测试检查点即请求结果的断言,通过检查接口响应是否符合预期,判定系统是否满足预期。 在接口自动化用例中,测试步骤的“检查点”页签中可以定义测试检查点。 检查点内容包括属性、比较符和目标值定义。 字段 说明 重试次数 如果检查点失败,重新执行该测试步骤的次数,重试次数范围:0~5的正整数。 重试间隔 如果检查点失败,每次重试的间隔时长,单位为ms,重试间隔范围:0~10,000的正整数。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码、变量。 属性 若来源是响应码,属性可为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 若来源是变量,属性为全局变量,局部变量,响应提取后的变量。详细介绍请参见变量检查。 高级提取类型 可选项,使用高级提取类型,辅助提取检查点信息,若选择不涉及,则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 类型值 高级提取类型中所需的参数。 比较符 支持数字、字符串、JSON对象比较、类型比较等多种比较符,详细介绍请参见比较符说明。 目标值 检查点期望值。目标值支持使用内置参数,请参考内置参数了解如何使用内置参数。 例如,检查响应体(JSON格式)中“item.name”字段的第零位(首位)到第四位之间是不是petty,参数配置如下: 字段 值 来源 响应体(JSON) 属性 item.name 高级提取类型 字符串提取 类型值 0、5 比较符 等于(字符串) 目标值 petty
  • 响应提取 响应提取是提取接口响应结果的某一部分,命名为参数,供后续测试步骤参数化调用。响应提取需要在前序测试步骤定义,后续测试步骤使用。 在前序测试步骤中,在“响应提取”页签创建要传递的参数。响应提取来源用到内置参数,请参考内置参数了解如何使用内置参数。响应提取同时支持正则表达式的匹配,提取出与给定正则表达式匹配的返回值。 在后续测试步骤中,通过“${参数名}”方式引用前序测试步骤创建的响应提取。后续步骤的URL、请求头、请求体中均可以引用此参数。如果在JSON格式的请求体中引用此参数,请在参数外使用英文引号,如: { id: "用例ID" name:"${name}" } 响应提取支持根据给定的“key:value”获取字符串,详细配置可参考示例:根据给定的key:value从响应体中获取字符串。 字段 说明 出参名称 用于之后使用${出参名称}来引用此参数,名称使用字母数字下划线。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码。 属性 若来源是响应码,属性为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 高级提取类型 可选项,使用高级提取类型,辅助提取响应结果信息,若选择不涉及则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 赋值给环境动态参数 将响应提取后的值赋值给动态变量,用于后续测试引用。请参考新建变量,如何设置动态变量。 父主题: 测试用例管理
  • 创建测试套件 自动化测试套件,实现用例串行/并行执行的策略,测试用例分块加速能力,有效提高资源池利用率,减少任务阻塞情况。并且可提前拦截产品缺陷,更加快速地发现问题。 在“API测试”主页,单击“新建测试套件”。 在“新建测试套件”页面,填写用例名称与描述。 单击,弹出“添加测试用例”对话框,选择需要添加到测试套件的测试用例,单击“确定”。 单击,弹出“执行策略”对话框,根据需要配置执行策略,单击“确定”。 定时类型:执行一次、周期性重复执行,周期性指设置一个执行频率,测试套按照这个频率周期重复执行。 任务开始时间:立即执行、指定开始时间。 执行时间区间:全天执行、指定执行区间,即指定套件执行的时间段。 用例超时时间:设置每个用例的最长执行时间,超过时间,用例则超时失败。 任务继续执行,直到最后一个用例执行完毕。可设置分钟级,小时级,天级。 回到当前测试套件页面,单击右上角“保存“,完成自动化测试套件创建。 父主题: 测试套件管理
  • 内置参数 内置参数是将HTTP/HTTPS响应的对应部分参数化,在检查点、响应提取功能中的“来源”选项中可以选择内置参数。 内置参数如下表: 内置参数 参数说明 是否支持多级取值 用途 举例 响应体(json) 表示接口返回的响应体。 是 检查点的属性字段 参数传递的属性字段 检查点:判断响应体中的id等于100。 设置方法:设置检查点来源为响应体(JSON),属性为id(前提条件响应体JSON串有id字段),设置比较符为等于(字符串、不区分大小写),设置目标值为100。 响应头 表示接口返回的响应头。 是 检查点的属性字段 参数传递的属性字段 检查点:判断响应头中的token等于abcd。 设置方法:设置来源为响应头,属性为token(前提条件响应头有token),设置比较符为等于(字符串、不区分大小写),设置目标值为abcd。 响应码 表示接口返回的响应码。 否 检查点的属性或值字 变量的属性字段 检查点:判断响应码等于200。 设置方法:设置来源为响应码,设置比较符为等于(数字),设置目标值为200。 内置参数支持多级取值,例如: 响应体为“{"result":{"appId":12}}”时,则取appId的格式为:来源选择响应体,属性为“result.appId”。如果result是数组格式。则属性为“result[i].appId”,其中,i为非负整数。
  • 局部参数 局部参数使用范围是当前测试用例,如:测试步骤的参数、检查点、变量等都可以引用局部参数。 局部参数引用形式为“${参数名}”,如:参数名为“hostIp”,则可以使用“${hostIp}”来引用该参数。 局部参数主要配置项如下: 配置项 是否必填 描述 名称 是 支持中英文、数字、点号、中文短横线、下划线的半角字符,并且长度范围是1~300。 类型 是 支持文本、随机字符串、随机整数、时间戳、格式化时间戳、生成UUID、Base64编码、MD5哈希值、密码或认证信息、SHA512编码。 描述 否 对参数的简要描述,上限为3000字符。默认为当前参数类型的描述。 单击“文本框”后,用户可以直接输入文本描述。 单击,输入一个json,单击“Json转换”,可以给没有换行的Json添加换行和缩进,单击“回填”添加成功。 值 否 用户可以为不同类型的参数赋值。 敏感变量 否 勾选为敏感数据后,测试计划对参数值加密存储,在测试结果日志中使用星号覆盖处理。敏感数据类型适用并不限于个人信息、鉴权信息,例如姓名、地址、用户名等。 动态变量 否 动态参数的值可以在用例执行过程中被赋值。动态参数初始值可为空,被赋值之后,此处显示的是最新值。 动态参数赋值方法:在用例测试步骤“响应提取”的“赋值给环境动态参数”中设置后,在测试执行时,响应提取的内容将被赋值给动态参数。 参数类型: 名称 描述 文本 上限为10000字符,支持设置“敏感参数”、“动态参数” ,默认为否。 随机字符串 随机生成指定长度字符串,随机字符串的变量值长度校验范围【1-9999】,不支持设置“敏感参数”及“动态参数”。 随机整数 随机生成指定范围整数,区间范围校验为【-999999999~999999999】,不支持设置“敏感参数”及“动态参数” 。 例如:设置【-9999,9999】 ,会获取这个区间内的随机整数。 时间戳 无需输入,生成当前整数时间戳,不支持设置“敏感参数”及“动态参数”。 格式化时间戳 格式为yyyy-MM-dd HH:mm:ss或yyyy-MM-dd,不支持设置“敏感参数”及“动态参数”。 例如: yyyy-MM-dd HH:mm:ss:33250825252000 , 预期值为3023-09-05 20:20:52。 yyyy-MM-dd:33250825252000,预期值为3023-09-05。 生成UUID 无需输入,不支持设置“敏感参数”及“动态参数”。 Base64编码 使用Base64方法编码参数,上限为256字符,不支持设置“敏感参数”及“动态参数”。 MD5哈希值 使用指定参数生成MD5哈希值,上限为256字符,不支持设置“敏感参数”及“动态参数”。 密码或认证信息 上限为256字符,不支持设置“敏感参数”及“动态参数”。默认勾选“敏感参数”。 SHA512编码 上限为256字符,不支持设置“敏感参数”及“动态参数”。默认勾选“敏感参数”。 数组 数组的内容是json数组格式,上限为10000字符,不支持设置“敏感参数”及“动态参数”。 局部参数管理 进入接口自动化用例编辑的“脚本”页签,进入“局部参数”管理页面。 单击左上方“新建变量”,输入参数名、类型、值,全部参数设置完毕,单击“保存”,完成局部参数设置。
  • 接口自动化用例系统关键字 接口自动化测试将常见的操作封装成关键字供用户使用,用于提升编写接口测试用例的效率。 使用系统关键字高阶特性,需要开通TestPlan专业版套餐或CodeArts专业版以上套餐。 表1 系统关键字一览表 分类 关键字集 认证类 认证类—GetIAMToken 认证类—OAuth2ForOneAccess 数据库操作类 数据库类—MySQLQuery 数据库类—MySQLUpdate 数据库类—MySQLInsert 数据库类—MySQLDelete 数据库类—OpenGaussQuery 数据库类—OpenGaussUpdate 数据库类—OpenGaussInsert 数据库类—OpenGaussDelete 数据库类—PostgreSQLQuery 数据库类—PostgreSQLUpdate 数据库类—PostgreSQLInsert 数据库类—PostgreSQLDelete 数据库类—MongoDBQuery 数据库类—MongoDBInsert 数据库类—MongoDBUpdate 数据库类—MongoDBDelete 中间件类 中间件类—RedisGet 中间件类—RedisSet 中间件类—OBSWrite 中间件类—OBSDelete 中间件类—OBSQuery 中间件类—KafkaProducer 中间件类—KafkaConsumer 协议类 协议类—TCP 协议类—UDP 协议类—WSConnect 协议类—WSRequest 协议类—WSWriteOnly 协议类—WSReadOnly 协议类—WSDisConnect 协议类—MQTTConnect 协议类—MQTTDisconnect 协议类—MQTTPublish 协议类—MQTTSubscribe 协议类—DubboClient 具体请参考CodeArts Testplan的接口自动化用例系统关键字。
  • 接口关键字 接口关键字中定义单个接口的请求,可以通过导入Swagger文件、保存自定义URL请求等方式生成。 导入Swagger文件生成数据 在右侧“关键字库”界面,单击“导入接口”。 在弹出的“导入接口”页面,单击“点击添加文件或拖拽上传”,选择配置好的Swagger接口文档,单击“确定”,完成Swagger文件导入。 文档导入成功后,系统自动解析生成脚本模板,脚本模板包含了接口的基本描述信息。可以从“关键字库”界面单击“+”或直接拖拽接口添加至测试步骤,只需要按模板输入接口参数就可以进行测试。 具体请参考CodeArts Testplan的接口关键字。
  • 关键字库入口 在“脚本”页签,页面右侧展示“关键字库”。 通过Swagger文件导入的关键字放置在关键字库的“接口”页签中,详细操作请参考接口关键字。 关键字用例和组合关键字放置在关键字库的“组合”页签中,支持从0到1创建新的组合关键字,详细操作请参考组合关键字。 认证类、数据库操作类、中间件类、协议类等实用关键字放置在“系统”页签中,详细操作请参考接口自动化用例关键字。 单击关键字库中“名称”下拉列表,可以按照“名称”、“描述”,搜索对应的关键字。
  • 检查点说明 测试检查点即请求结果的断言,通过检查接口响应是否符合预期,判定系统是否满足预期。 在接口自动化用例中,测试步骤的“检查点”页签中可以定义测试检查点。 检查点内容包括属性、比较符和目标值定义。 字段 说明 重试次数 如果检查点失败,重新执行该测试步骤的次数,重试次数范围:0~5的正整数。 重试间隔 如果检查点失败,每次重试的间隔时长,单位为ms,重试间隔范围:0~10,000的正整数。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码、变量。 属性 若来源是响应码,属性可为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 若来源是变量,属性为全局变量,局部变量,响应提取后的变量。详细介绍请参见变量检查。 高级提取类型 可选项,使用高级提取类型,辅助提取检查点信息,若选择不涉及,则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 类型值 高级提取类型中所需的参数。 比较符 支持数字、字符串、JSON对象比较、类型比较等多种比较符,详细介绍请参见比较符说明。 目标值 检查点期望值。目标值支持使用内置参数,请参考内置参数了解如何使用内置参数。 例如,检查响应体(JSON格式)中“item.name”字段的第零位(首位)到第四位之间是不是petty,参数配置如下: 字段 值 来源 响应体(JSON) 属性 item.name 高级提取类型 字符串提取 类型值 0、5 比较符 等于(字符串) 目标值 petty
共100000条