华为云用户手册

  • 对于响应的处理 pm.response 在后置脚本中pm.response接口请求完成后返回响应信息,Response SDK 参考。 response包含了以下结构: pm.response.code:Number:获取响应码。 pm.response.status:String:获取响应状态。 pm.response.headers:HeaderList:获取响应头。 pm.response.responseSize:Number:获取响应大小。 pm.response.text():Function:以文本形式输出响应体。 pm.response.json():Function:以json形式输出响应体。 pm.response.setBody(''):设置响应体。 pm.response.headers.get:从响应头中获取指定参数的值,Response SDK 参考。 后置脚本中使用“pm.response.headers.get”命令可以获取响应头中指定参数的值。例如想要获取响应Header中date参数的值,那么可以在后置操作中输入如下自定义脚本: var test = pm.response.headers.get("date"); console.log(test);
  • 对于发送请求的处理 pm.sendRequest pm.sendRequest:Function用于脚本异步发送HTTP/HTTPS的请求。 更多参数信息请查阅Collection SDK 文档 。 在前置脚本和后置脚本都可以使用。 更多参考: Request JSON 结构 Response 结构 // 使用字符串URL示例 pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } else { pm.variables.set("variable_name", "new_value"); } }); // 完整请求示例 const echoPostRequest = { url: "https://postman-echo.com/post", method: "POST", header: { header_name1: "value1", header_name2: "value2", }, // body 为 x-www-form-urlencoded 格式 body: { mode: "urlencoded", // 此处为 urlencoded // 此处为 urlencoded urlencoded: [ { key: "account", value: "codeartsapi" }, { key: "password", value: "123456" }, ], }, /* // body 为 form-data 格式 body: { mode: 'formdata', // 此处为 formdata // 此处为 formdata formdata: [ { key: 'account', value: 'codeartsapi' }, { key: 'password', value: '123456' } ] } // body 为 json 格式 header: { "Content-Type": "application/json", // 提醒:header中需要添加Content-Type }, body: { mode: 'raw', raw: JSON.stringify({ account: 'codeartsapi', password:'123456' }) } // body 为 raw 或 json 格式 body: { mode: 'raw', raw: 'body内容' } */ }; pm.sendRequest(echoPostRequest, function(err, resq) { console.log(err ? err : resq.json()); }); // 对返回结果进行断言 pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } pm.test("response should be OK to process", function() { pm.expect(err).to.equal(null); pm.expect(resq).to.have.property("code", 200); pm.expect(resq).to.have.property("status", "OK"); }); });
  • 对于请求的处理 pm.request pm.request对象可以在脚本中对请求数据进行访问,Request SDK 参考。在前置脚本中表示即将运行的请求,在后置脚本中,表示已经运行的请求。 pm.request包含了以下结构: pm.request.url:Url:获取当前请求的URL。 pm.request.getBaseUrl():获取运行中环境选择的前置URL。 pm.request.method:String:获取当前请求的方法,如GET、POST等。 pm.request.headers:HeaderList:获取当前请求的headers列表。 pm.request.body:RequestBody:获取当前请求的body体。 pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function:为当前请求添加指定键和值的header。 pm.request.headers.remove(headerName:String):function:删除当前请求里指定键的header。 pm.request.headers.get(headerName:String):function:获取请求里指定名称的header。 pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function:插入指定键和值的header(如果header不存在则新增,如果header已存在则修改)。 pm.request.auth:获取请求的身份验证信息。
  • pm pm:Object pm对象,含有接口运行关联信息。可利用它获取或设置环境变量和全局变量,且访问请求信息和返回结果信息。 pm:info:Object pm.info对象,含有接口运行关联信息。 pm.info.eventName:String:获取当前执行的脚本类型:前置脚本(prerequest),后置脚本(test)。 pm.info.iterationCount:Number:返回执行循环的总次数,仅集合测试有效。 pm.info.iteration:Number:获取当前执行循环(iteration)次序,仅集合测试有效。 pm.info.requestId:String:获取运行中接口用例的唯一ID。 pm.info.requestName:String:获取运行中接口用例名称。
  • 设计API 接口文档应针对以下要素进行设计: 接口基本信息 接口路径 请求方式 接口请求参数 接口返回响应 安全方案 接口基本信息 填写接口的基本信息,包括: 名称:接口名称。 摘要:接口的摘要信息。 状态:API生命周期的状态,包括设计中、联调中、测试中、测试完、已发布、将废弃、已废弃。 所属目录:接口在项目中所属的目录。 所属Tags:接口所属的Tags,可以直接选择所属目录信息当作所属Tags,也可以在所属Tags框中手动输入Tag名再回车来生成所属Tags。 描述:可添加接口的相关描述,包括接口功能、使用注意事项、使用场景定义等详细描述信息,接口描述支持通用Markdown语言编辑。 接口路径 接口的URL,客户端可以通过接口路径向服务端发起请求。以“/”开头,如:“/car”、“/car/{owner}”。 接口路径一般不包含 域名 和http、https协议名,如需加上域名进行调试,在调试功能页面有相应处理。 大括号“{}”中间的字符串表示Path参数。 不支持通过接口路径来添加Query参数,如:“/car?owner=zhangsan”。 支持创建100个项目中根目录。 请求方式 定义接口的请求方式,制定了客户端对服务端资源操作的方法,在API设计过程中,需要根据业务和操作类型选择合适的请求方式。 GET(获取):用于获取指定资源,使用查询参数传递参数,适用于读取资源和查询数据。 POST(提交):用于提交数据。POST请求可以传递请求体参数,适用创建新资源、提交表单数据或执行某些操作等场景。 PUT(更新):用于更新或替换服务端的指定资源。 DELETE(删除):用于删除服务端的指定资源。 OPTIONS(选项):用于获取服务器支持的http方法和资源的相关信息。可用于客户端与服务端之间的握手过程,了解服务器所支持的方法和功能。 HEAD(请求头):与GET类似,但只返回响应头部,不返回实体内容,用于获取资源的元信息,如:文件大小、修改日期等。 PATCH(补丁):用于对资源进行局部更新。PATCH请求类似于PUT请求,但是只更新资源的一部分。 TRACE(跟踪):用于简历与代理服务器的隧道连接,通常用于进行安全的SSL/TLS加密通信。 接口请求参数 Params、Path、Header、Cookies Query参数:接口请求中的一种参数传递方式,它通常用于传递一些可选的参数,比如过滤条件、排序方式、分页参数等。在URL中表现为末尾“?”后的字符串(如:“/car?owner=zhangsan”,那么“owner=zhangsan”即Query参数,其中“owner”为参数的key,“zhangsan”为参数的value)。 Path参数:也称为“路径参数”,是API请求中的一种参数传递方式。在URL中表现为大括号“{}”括起来的字符串(如:“/car/{owner}”,那么“{owner}”表示key为“owner”的Path参数)。 Header参数:请求头中的参数。 Cookies:类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。 前置脚本:CodeArts API支持接口前置脚本操作,详见脚本能力。 后置脚本:CodeArts API支持接口后置脚本操作,详见脚本能力。 请求体 在发起http请求时,需要带上一些参数以便服务器处理,通过http请求体传递的参数被称为Body参数。Body参数包含在请求的主体部分中,通常是一些表单数据、JSON数据或者二进制数据。在发送请求时,会根据Body参数类型,自动在请求Header中添加对应Content-Type参数。若手工设置Content-Type的类型,则必须与Body的参数类型匹配,否则系统会自动忽略掉手动设置的Content-Type值。 none:无body参数。 application/json:json格式数据。Content-Type为 “application/json”。 application/xml:xml类型数据,用于标识文件和图像等没提类型,也可以标识结构化数据。Content-Type为 “application/xml”。 multipart/form-data:表单数据。Content-Type为 “multipart/form-data”。 application/x-www-form-urlencoded:将表单数据编码后传输到服务器。数据被编码为一系列键值对,每个键值对之间以&连接,并且键与值之间以=分隔。Content-Type为“application/x-www-form-urlencoded” 。 此外,还支持根据Body体数据结构自动生成示例,以及单击“智能导入”,根据输入的Json自动生成数据结构功能。 接口返回响应 返回响应的定义包含:返回响应的状态码、响应内容的数据结构、响应示例和响应头。 返回响应的状态码:通过加号来添加运行接口后可能的响应状态码,单击响应状态码可以对状态码进行修改。 响应内容的数据结构:规定响应内容的格式,分为“application/json”、“application/xml”、“text/plain”三种,“application/json”和“application/xml”两种情况下可以对响应内容的结构进行进一步定义,如:响应内容为“application/json”,规定json内容里的参数类型等。 响应示例:响应内容的示例。 响应头:返回响应的Header。 返回响应也可以直接引用公共模型中已定义好的“公共响应”,并且支持自动生成响应示例。 安全方案 OpenAPI规范中,安全模型对应OpenAPI3.0的components.securitySchemes。大部分的Web服务都需要经过身份认证才能访问,security就是用于描述API的安全信息和访问授权协议等信息的对象,Open API支持的最常见授权方案如下: API key HTTP Oauth2.0 OpenID Connect 安全方案引入需要在公共模型中建立安全模型,详见•安全模型。
  • 手动导入 通过主页面的“更多功能”选项或单击左上角搜索框旁边的,可以展示当前支持的导入选项,可根据需要选择。 导入文件 选择响应格式的文件并上传,然后选择文件中系统识别出来的接口和数据模型导入。 一个文件导入后,将会视为一个根目录,一个根目录中不允许存在URL相同的接口。 Postman支持Collections和Environment数据集ZIP包的全量导入,也支持单个Collection文件导入。 Postman支持接口和接口用例的前置脚本及后置脚本导入。 导入URL 选择“导入Swagger URL”,输入URL,即可完成文档导入。 通过Swagger URL导入时,需要填写json数据文件的URL,而非Swagger UI的URL。
  • 配置请求规则 请求Mock服务时,系统会根据规则中配置的参数匹配,只有规则下所有参数满足匹配条件时,才可匹配到整个规则。 请求参数,支持Query、Path、Header、Body。 Path参数只有在当前选择的接口的url中存在path变量时才可以显示配置。 Body支持json和xml格式。当请求体为json格式时,匹配规则会同时匹配json中的key和value。 无法保存重复规则。如果同一个接口下的不同规则配置内容一致,会提示无法保存规则。
  • 导入快捷调试 CodeArts API支持Postman的Collection数据文件的导入,也支持Collections和Environments数据集ZIP包的全量导入,方便用户迁移调试数据。 进入“快捷调试”页面,单击,选择“导入Postman文件”。 弹出“导入Postman文件”对话框,选择需要导入的Postman文件。 Collection数据文件的导入 弹出“导入”对话框,选择需要导入的接口,单击“导入”完成数据迁移。 Collections和Environments数据集ZIP包的导入 弹出“导入”对话框,选择需要导入的接口和环境变量,单击“导入”完成数据迁移。 导入通过Postman导出的文件时,接口示例会被同时导入为快捷调试接口,名称和Postman中接口示例名称相同。 父主题: 导入与导出
  • 邀请其他企业用户 可以通过邀请其他企业用户,对当前项目进行查看或编辑。 单击“添加成员”旁的下拉框,选择“邀请其他企业用户”。 弹出“邀请其他企业用户”对话框,在“企业用户”输入框中输入企业用户ID,在“用户名称”输入框中输入需要邀请的用户名称后,单击右侧“添加用户”,可一次性添加同一企业不同用户。 单击“确定”导入其他企业成员,默认为“浏览者”身份权限。可通过设置项目成员角色修改成员角色与权限。
  • Markdown设计 新建Markdown,可通过以下三种方式完成。 方法一:单击“新建 Markdown”图标。 方法二:单击目录树搜索框右侧的,在弹出的下拉框中,选择“新建Markdown”。 方法三:在目录树中选择一个目录,单击右侧图标,在弹出的下拉框中,选择“新建Markdown”。 进入“新建标签页”,在该标签页可以编辑Markdown文件,主要包括:目录、名称、正文。 目录:在上一步中,如果通过方法一和方法二新建Markdown,目录初始内容为空,可以手动选择;如果通过方法三新建Markdown,目录会自动生成为选中的目录,也可以手动修改。 名称:可根据业务需要自定义命名,不能为空。命名规则:只支持中文、英文、下划线、数字和“.”,且以中英文开头,长度为3-64个字符。 正文:可手动输入文字,也可使用组件插入特定的内容,如:表格、超链接、图片;正文样式也可以使用组件进行调整;正文编辑支持全屏模式;在左侧编辑正文时,右侧会同步展示编辑内容,便于查看、修改样式等。 编辑完成后,单击右上角“保存”,左侧目录树同步刷新,界面会自动跳转到文档页面,展示名称、正文,上方标签页的名称也会更新为Markdown文件名称。 移动Markdown(可选)。 单击并拖拽Markdown到目标目录后释放即可,移动成功后,目录树会自动刷新,Markdown文件的目录也会同步改变。 Markdown文件只能在同一根目录下进行移动。 处于编辑页面的Markdown文件不能移动。 父主题: API设计
  • 响应体(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
  • 新建变量 在“环境参数”页面,单击,即可添加一个变量,根据需要填写变量信息: 参数项 说明 名称 当前环境变量参数名,可使用“$${参数名}”形式进行引用。 类型 包括:文本、随机字符串、随机整数、时间戳、格式化时间戳、生成UUID、Base64编码、MD5哈希值、密码或认证信息、SHA512编码。 值 当前环境变量的值,支持加密显示。 描述 根据不同类型,自动添加默认描述,也可根据设计需要自定义描述。 敏感变量 勾选为敏感变量后,云测对参数值加密存储,在测试结果日志中使用星号覆盖处理。敏感数据类型适用并不限于个人信息、鉴权信息等,如:姓名、地址、用户名等。 动态变量 动态参数的值可以在用例执行过程中被赋值。动态参数初始值可为空,被赋值之后,此处显示的是最新值。 动态参数赋值方法:在用例测试步骤“响应提取”的“赋值给环境动态参数”中设置后,测试执行时,响应提取的内容将被赋值给动态参数。
  • 参数使用 环境参数可以用于整个项目,如:快捷调试的参数、URL,测试步骤的参数、检查点、变量、URL等都可以引用环境参数。 环境参数的引用形式为“$${参数名}”,如:参数名为“hostname”,则可以使用“$${hostname}”来引用该参数。可以按环境上下文配置环境参数,如:类生产环境中hostname=stage.example.com,生产环境中hostname=prod.example.com。测试执行时可选择环境执行。
  • YApi项目导入 导出数据 打开YApi对应项目,单击“数据管理”,进入“数据管理”页面。 在导出数据模块中,选择“json”数据方式,单击导出,完成导出。 导入数据 打开CodeArts API首页,单击“导入项目”。 弹出“导入项目”对话框,选择导入文件格式为“YApi”,选择需要导入的YApi文件。 在“导入项目”对话框输入项目名称,单击“确定”。 弹出“导入预览”对话框,可预览所有导入数据,然后单击“导入”。 弹出导入进度对话框,可查看导入进度。 导入完成后,可进入导入项目,查看导入的接口。 当导入请求体和响应体结构为Json格式时,支持JsonSchema和Json标准(双斜杠类型字段注释将被识别为字段描述)格式导入。
  • 接口路径 API调试页面的接口路径,可以选择http或https,并在定义的路径前自动添加了域名。添加的域名是在右上角选择的环境参数中定义的,单击左侧下拉箭头可在不同运行环境间切换,单击下拉箭头右上角按钮,可进行环境参数配置。 针对各个环境,默认提供变量“hostURL”参数作为添加到接口前的域名,从而拼接成完整地址。 可以看到对应环境“默认环境”中的“hostURL”参数的值“127.0.0.1:8080”被添加到接口URL前,作为整个路径的域名。鼠标悬浮在路径前,提示次前置URL来自于哪一环境,单击环境名称,可直接跳转至相应环境下进行编辑。 路径中大括号“{}”中的字符串表示Path参数。 路径中“?”后的字符串表示Query参数。 如果在调试页面路径栏下方的Query属性框中,对Query参数进行修改,路径中的Query参数也会同步变化。
  • 请求体 在Body页签中,可以查看请求体,目前支持的请求体有如下几类: none:无body参数。 form-data:Content-Type为“multipart/form-data”,可以输入请求体中每个参数的类型、名称和值。 application/x-www-form-urlencoded:Content-Type为“application/x-www-form-urlencoded”,可以输入请求体中每个参数的名称和值。 raw:在文本框中输入文本内容,在“raw”选项旁边可以下拉选择输入文本内容格式,如Text和Json。 请求参数的默认值均来自API设计的样例值。 在API调试页面修改请求参数,不能保存至API设计与API文档中。
  • 断言 可以利用后置脚本验证API响应返回结果的正确性。 // 示例1:pm.response.to.have pm.test('Response status is 200', function() { pm.response.to.have.status(200); }); // 示例2:pm.expect() pm.test('this is production', function() { pm.expect(pm.environment.get('env')).to.equal('production'); }); // 示例3:response assertions pm.test('no error', function() { pm.response.to.not.be.error; pm.response.to.have.jsonBody(''); pm.response.to.not.have.jsonBody('error'); }); // 示例4:pm.response.to.be* pm.test('no error', function() { // 断言结果:info, success, redirection, clientError, serverError, are other variants pm.response.to.be.ok; // 断言有body,并且是json格式 pm.response.to.be.withBody; pm.response.to.be.json; });
  • 全局代理设置 使用系统代理 进入网络代理设置页面后,默认使用系统代理。 可根据需要选择是否优先使用系统环境变量HTTP_PROXY、HTTPS_PROXY、NO_PROXY,勾选后,CodeArts API会优先调用系统环境变量。 身份认证:请查看身份认证。 不使用代理 选择不使用代理时,此时CodeArts API不使用任何代理(包含系统代理)连接服务器。 自定义 选择自定义代理时,需配置“接口类型”、“代理服务器”、“身份认证”、“Proxy Bypass”。 接口类型:接口类型默认HTTP和HTTPS全选,支持两种协议类型的代理。 代理服务器:需输入代理服务器地址和端口。 身份认证:请查看身份认证。 Proxy Bypass:无需进行代理转发的IP或域名,可填入多个,以英文逗号进行分隔。
  • 创建测试套件 自动化测试套件,实现用例串行/并行执行的策略,测试用例分块加速能力,有效提高资源池利用率,减少任务阻塞情况。并且可提前拦截产品缺陷,更加快速地发现问题。 可通过以下两种入口新建测试套件。 入口一:单击主页面的“新建测试套件”选项。 入口二:单击左侧测试用例旁边的,选择下拉选项中的“新建测试套件”选项。 在“新建测试套件”页面,填写用例名称与描述。 单击,弹出“添加测试用例”对话框,选择需要添加到测试套件的测试用例,单击“确定”。 单击,弹出“执行策略”对话框,根据需要配置执行策略,单击“确定”。 定时类型:执行一次、周期性重复执行,周期性指设置一个执行频率,测试套按照这个频率周期重复执行。 任务开始时间:立即执行、指定开始时间。 执行时间区间:全天执行、指定执行区间,即指定套件执行的时间段。 用例超时时间:设置每个用例的最长执行时间,超过时间,用例则超时失败。 任务继续执行,直到最后一个用例执行完毕。可设置分钟级,小时级,天级。 回到当前测试套件页面,单击右上角“保存“,完成自动化测试套件创建。 父主题: 测试套件管理
  • 未登录使用 打开客户端,在登录页面单击“稍后再说”即可开始使用。未登录的状态下只支持创建一个环境及使用部分快捷调试功能。 创建环境 创建环境及环境变量请参照环境与环境变量进行设置与使用。 快捷调试 进入项目后,单击搜索框旁,可根据需要选择“新建快捷调试”进行新建快捷调试操作。 导入与导出功能需要登录后才可以继续使用。 前置脚本、后置脚本功能需要登录后才可继续使用。 切换登录状态 单击以下功能菜单可弹出登录页面,进行登录后可体验产品的全部功能。
  • 测试用例导入 CodeArts API提供不同版本测试用例的导入功能。 在“版本管理”页面,单击目标版本操作列的,选择“导入”。 弹出“从版本导入测试用例”对话框。 填写导入信息,单击“确定”,完成测试用例的导入。 参数名称 说明 覆盖规则 勾选后,会覆盖编号重复用例和脚本,且无法回退。 版本选择 原版本:需要导入的测试用例版本。 目标版本:被导入测试用例的版本,不可更改。 用例选择 需要导入的测试用例列表。 因存量版本未在API测试模块中被同步创建,不可导入API测试未存在版本的测试用例。
  • 响应提取 响应提取是提取接口响应结果的某一部分,命名为参数,供后续测试步骤参数化调用。响应提取需要在前序测试步骤定义,后续测试步骤使用。 在前序测试步骤中,在“响应提取”页签创建要传递的参数。响应提取来源用到内置参数,请参考内置参数了解如何使用内置参数。响应提取同时支持正则表达式的匹配,提取出与给定正则表达式匹配的返回值。 在后续测试步骤中,通过“${参数名}”方式引用前序测试步骤创建的响应提取。后续步骤的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从响应体中获取数据。 高级提取类型 可选项,使用高级提取类型,辅助提取响应结果信息,若选择不涉及则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 赋值给环境动态参数 将响应提取后的值赋值给动态变量,用于后续测试引用。请参考新建变量,如何设置动态变量。 父主题: 测试用例管理
  • 响应体(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
  • URI DELETE /v1/{project_id}/service-items/{item_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目id item_id 是 String 服务组成员id 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目id,用户支持企业项目后,由企业项目生成的id。 fw_instance_id 否 String 防火墙实例id,创建 云防火墙 后用于标志防火墙由系统自动生成的标志id,可通过调用查询防火墙实例接口,默认情况下,fw_instance_Id为空时,返回账号下第一个墙的信息;fw_instance_Id非空时,返回与fw_instance_Id对应墙的信息。
  • 响应示例 状态码: 200 删除服务组成员返回信息 { "data": { "id": "26f562c4-fe11-43d0-9654-f54298d5b12e" "name": "0-65535|0-65535" } } 状态码: 400 Bad Request { "error_code" : "CFW.0020016", "error_msg" : "实例状态错误" }
  • 请求示例 删除项目id为9d80d070b6d44942af73c9c3d38e0429,服务组成员id为6b37ed55-1e21-46a5-a7dc-a59ef418d359的服务组成员 https://{Endpoint}/v1/9d80d070b6d44942af73c9c3d38e0429/service-items/6b37ed55-1e21-46a5-a7dc-a59ef418d359
共100000条