云服务器内容精选

  • 响应提取 响应提取是提取接口响应结果的某一部分,命名为参数,供后续测试步骤参数化调用。响应提取需要在前序测试步骤定义,后续测试步骤使用。 在前序测试步骤中,在“响应提取”页签创建要传递的参数。响应提取来源用到内置参数,请参考内置参数了解如何使用内置参数。响应提取同时支持正则表达式的匹配,提取出与给定正则表达式匹配的返回值。 在后续测试步骤中,通过“${参数名}”方式引用前序测试步骤创建的响应提取。后续步骤的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开发 CodeArts API支持生成接口请求代码和业务代码,缩短前后端开发时长,规范代码结构。 基于接口定义,CodeArts API支持自动生成各种语言和框架的请求代码和业务代码。在API设计模块,接口文档界面右侧,即可看到“生成代码”的入口。 生成接口请求代码 单击“生成代码”下拉框,选择“生成接口请求代码”,弹出“生成接口请求代码”对话框。 支持生成多种语言的接口请求代码,单击右上角,可一键复制并直接粘贴,支持编辑修改和代码格式化。 生成业务代码 单击“生成代码”下拉框,选择“生成业务代码”,弹出“生成业务代码”对话框。 根据需要选择语言、生成范围(包括“仅当前接口及关联模型”和“整个项目”),单击“生成”将生成的代码存储到本地,开发者可以将代码复制到本地的研发工具(如IntelliJ IDEA)。
  • 授权企业联邦账号 提供企业账户授权的启用、停用等操作。通过增加企业账户授权,您可以开放本企业账户的资源的使用权限给其他企业账户下用户。 华为云目前支持以下两种身份提供商类型: IAM 用户SSO:身份提供商中的用户登录华为云后,系统将自动匹配外部身份ID绑定的对应IAM子用户,从而拥有该子用户所在用户组的权限。此类型账号与普通的IAM账号授权相同。 虚拟用户SSO:身份提供商中的用户登录华为云后,系统为其自动创建虚拟用户信息,并按照身份转换规则授权。 两种身份提供商的适用场景及配置方法可参照身份供应商概述。 虚拟用户SSO需要先登录一次CodeArts API,项目拥有者/项目经理才可以在管理项目成员与角色页面中查询并添加该用户。 支持企业联邦账号登录并使用网页版CodeArts API,客户端暂不支持。
  • 授权IAM账号 如果用户需要对所拥有的CodeArts API服务 进行精细的权限管理,可以使用 统一身份认证 服务(Identity and Access Management,简称IAM),通过IAM,可以: 根据企业的业务组织,在华为云账号中,给不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证使用CodeArts API资源。 根据企业用户的职能,设置不同的访问权限,实现权限隔离。 CodeArts API支持的系统权限如下: DevCloud Console ReadOnlyAccess:软件开发生产线控制台只读权限,授权后可正常使用CodeArts API产品,但不可创建项目。 DevCloud Console FullAccess:软件开发生产线控制台管理员权限,拥有该权限的用户可以购买CodeArts。 ProjectMan ConfigOperations:设置新建项目权限。
  • API重新注册 CodeArts API提供API重新注册的功能,协助用户将已修改或不同版本的API重新注册到APIG实例。 在“API网关注册”页面,光标移动到API版本,可查看当前API的注册信息。 单击操作列的,弹出“重新注册API”对话框。 选择需要重新注册的API,单击“确定”,完成API的重新注册。 重新注册的API需要到APIG实例中完成发布API操作,才可完成API的上线。 对于项目中同名API的处理:如果项目中存在多个同名的API(URL、请求方式、名称相同),在重新注册操作时,需要用户从多个同名API中选择一个重新注册。APIG实例的同一个分组上不允许同名API重复注册。
  • 对于请求的处理 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:获取运行中接口用例名称。
  • 对于响应的处理 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"); }); });
  • 设计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设计