华为云用户手册

  • 变更套餐包规格 CodeArts支持以下场景的套餐包规格变更。 登录软件开发生产线控制台,单击“变更规格”,根据设置变更配置即可。 表2 变更规格 场景 方案 补差价升配 基础版增加人数 提交变更订单,补交差价,支付完毕后立即生效。 基础版升级为专业版/铂金版 专业版增加人数 专业版升级为铂金版 铂金版增加人数 续费降配 铂金版减少人数 提交续费订单,在新的订单周期内生效。 说明: 续费降配后,当前订单周期内不可再变更规格,进入新的续费周期后可变更规格。 如果由高版本降为低版本,进入降配后的周期时,已使用的存储空间资源可能会被冻结。 例如:由专业版降级至基础版,降级前已使用代码仓库空间50G,降配后将无法修改代码仓库中的内容,需要将代码仓库使用空间删减到10G以下才能够做修改。 铂金版降级至专业版/基础版 专业版减少人数 专业版降级至基础版 基础版减少人数
  • 计费模式 CodeArts采用包周期计费模式,提供套餐包、资源包、特性包。 其中,套餐包是基础,使用CodeArts前必须购买套餐包;资源包与特性包不能单独购买,当套餐包无法满足使用需要,可以根据需要选择叠加购买资源包、特性包。 套餐包 套餐包分为三个版本:基础版、专业版、铂金版。三个版本均包含需求管理、代码托管、代码检查、流水线、编译构建、部署、测试计划(测试管理与接口测试)、制品仓库-发布库的使用额度,版本之间的使用额度不同。 套餐包三个版本之间可通过升降级转换,但不能叠加购买。 表1 套餐包规格差异 服务 规格 基础版 专业版 铂金版 需求管理 知识库文件存储容量 10GB 100GB 1000GB起 代码托管 代码仓总存储容量 10GB 100GB 1000GB起 代码检查 代码检查并发 1个 5个 10个 流水线 流水线并发 5个 10个 15个 编译构建 构建并发 5个, 5个 15个 构建执行时长 600分钟/月 不限 不限 部署 部署并发 1个 10个 30个 测试计划-接口测试 接口测试并发 1个 2个 5个 测试套内用例并发 5个 10个 20个 接口测试时长 30分钟/月 不限 不限 制品仓库-发布库 发布库存储容量 10GB 100GB 1000GB起 如果需使用CodeArts IDE Online、 Classroom、 移动应用测试 ,请单独购买。 资源包 资源包中包含需求管理、代码托管、编译构建、接口测试、制品仓库-发布库的使用额度。 资源包采用包周期购买方式,可叠加购买,购买上限请参见购买页面。 特性包 特性包包含三种类型: 代码安全检查增强包:如果需使用安全相关代码检查规则,请购买此特性包。 构建加速包:如果需使用构建加速功能,请购买此特性包。(如何使用构建加速?) 构建并发包:如果需提升单个构建任务的并发执行数,请购买此特性包。构建并发包为租户级别,一个并发包资源同时只能由一个构建任务使用。(如何使用构建并发包?) 特性包采用包周期购买方式,可叠加购买,购买上限请参见购买页面。
  • API重新注册 CodeArts API提供API重新注册的功能,协助用户将已修改或不同版本的API重新注册到APIG实例。 在“API网关注册”页面,光标移动到API版本,可查看当前API的注册信息。 单击操作列的,弹出“重新注册API”对话框。 选择需要重新注册的API,单击“确定”,完成API的重新注册。 重新注册的API需要到APIG实例中完成发布API操作,才可完成API的上线。 对于项目中同名API的处理:如果项目中存在多个同名的API(URL、请求方式、名称相同),在重新注册操作时,需要用户从多个同名API中选择一个重新注册。APIG实例的同一个分组上不允许同名API重复注册。
  • 客户端特性 登录使用 单击“登录/注册”,填写账户密码进行登录,即可体验客户端功能。 未登录使用 打开客户端,在登录页面单击“稍后再说”即可开始使用。未登录的状态下只支持创建一个环境及使用部分快捷调试功能。 创建环境 创建环境及环境变量请参照环境与环境变量进行设置与使用。 快捷调试 进入项目后,单击搜索框旁,可根据需要选择“新建快捷调试”进行新建快捷调试操作。 导入与导出功能需要登录后才可以继续使用。 前置脚本、后置脚本功能需要登录后才可继续使用。 切换登录状态 单击以下功能菜单可弹出登录页面,进行登录后可体验产品的全部功能。
  • 快捷调试导入 CodeArts API支持Postman的Collections数据文件的导入,方便用户迁移调试数据。 进入“快捷调试”页面,单击,选择“导入Postman文件”。 弹出“导入Postman文件”对话框,选择需要导入的Postman的Collection文件。 弹出“导入”对话框,查看导入接口信息,单击“导入”完成数据迁移。 目前仅支持单个Collection文件的导入,不支持全量Collections和Environment数据集ZIP包的全量导入。 父主题: 导入与导出
  • API开发 CodeArts API支持生成接口请求代码和业务代码,缩短前后端开发时长,规范代码结构。 基于接口定义,CodeArts API支持自动生成各种语言和框架的请求代码和业务代码。在API设计模块,接口文档界面右侧,即可看到“生成代码”的入口。 生成接口请求代码 单击“生成代码”下拉框,选择“生成接口请求代码”,弹出“生成接口请求代码”对话框。 支持生成多种语言的接口请求代码,单击右上角,可一键复制并直接粘贴,支持编辑修改和代码格式化。 生成业务代码 单击“生成代码”下拉框,选择“生成业务代码”,弹出“生成业务代码”对话框。 根据需要选择语言、生成范围(包括“仅当前接口及关联模型”和“整个项目”),单击“生成”将生成的代码存储到本地,开发者可以将代码复制到本地的研发工具(如IntelliJ IDEA)。
  • Address相关 分类 规则 示例 示例结果 区域 @region @region() "西北" 省或直辖市、自治区、特别行政区 @province @province() "陕西省" 市 @city @city() "西安市" @city(prefix) @city(true) "陕西省 西安市" @city(false) "西安市" 县 @county @county() "蓝田县" @county(prefix) @county(true) "陕西省 西安市 蓝田县" @county(false) "蓝田县" 邮政编码 @zip @zip() "710500"
  • Name相关 分类 规则 示例 示例结果 英文名 @first @first() "Michelle" 英文姓 @last @last() "Williams" 英文姓名 @name @name() "Michelle Williams" @name(middle) @name(true) "Karen Lisa Harris" @name(false) "Karen Harris" 中文姓 @cfirst @cfirst() "张" 中文名 @clast() @clast() "三" 中文姓名 @cname @cname() "张三"
  • Helper 分类 规则 示例 示例结果 全大写 @upper(str) @upper("hello") "HELLO" 全小写 @lower(str) @lower("HELLO") "hello" 多选一 @pick(arr) @pick(["hello", "test", "test3"]) "hello" @pick([1, 5, 10, 60, 80]) 10 @pick([1,"hello","中国",true,80]) true
  • Web 相关 规则 示例 示例结果 @url @url() "http://ihum.md/xmicdyn" @url(protocol) @url("http") "http://ckpvjgyc.eg/jzatazzvm" @url(protocol,host) @url("http","test.com") "http://test.com/pmuway" @protocol @protocol() "ftp" @domain @domain() "ljmhm.gu" @domain(tld) @domain("com") "dtcboprfg.com" @tld @tld() "com" @email @email() "e.fsysqt@vjz.edu" @email @email("test.com") "e.fsysqt@test.com" @ip @ip() "xxx.xxx.xxx.xxx"
  • 日期/时间 分类 规则 示例 示例结果 日期 @date @date() "2015-05-09" @date(format) @date("yyyy-MM-dd") "2012-11-08" @date("yy-MM-dd") "10-06-12" @date("yyyy yy y MM M dd d") "1971 71 71 05 5 02 2" 时间 @datetime @datetime() "1996-15-11 01:18:47" @datetime(format) @datetime("yyyy-MM-dd A HH:mm:ss") "1978-01-10 AM 03:59:54" @datetime("yy-MM-dd a HH:mm:ss") "98-09-03 下午 19:32:44" 当前时间 @now @now() "2022-11-30 12:46:12" @now(unit) @now("year") "2022-01-01 00:00:00" @now("month") "2022-08-01 00:00:00" @now("week") "2022-08-09 00:00:00" @now("day") "2022-08-11 00:00:00" @now("hour") "2022-08-11 15:00:00" @now("minute") "2022-08-11 15:24:00" @now("second") "2022-08-11 15:24:02" @now(format) @now("yyyy-MM-dd HH:mm:ss SS") "2022-08-11 15:24:02 761" @now(unit,format) @now("day", "yyyy-MM-dd HH:mm:ss SS") "2022-08-11 00:00:00 000" 时间戳 @timestamp(format) @timestamp("s") "1662605353" @timestamp("ms") "1662605408838"
  • 基础类型 分类 规则 示例 示例结果 布尔值 @boolean @boolean() false,true @boolean(min,max,current) @boolean(1,9,true) false,true 自然数 @natural @natural() 1350447356 @natural(min) @natural(10000) 819989031 @natural(min,max) @natural(60,100) 63 整数 @integer @integer 1128800169 @integer(min) @integer(10000) 29427959 @integer(min,max) @integer(60,100) 94 浮点数 @float @float() 13425418.3 @float(min) @float(0) 1800545158.8 @float(min,max) @float(60,100) 98.63203 @float(min,max,dmin) @float(60,100,3) 69.882191 @float(min,max,dmin,dmax) @float(60,100,3,5) 80.14955 单字符 @character @character() "7" @character(pool) @character("lower") "x" @character("upper") "R" @character("number") "6" @character("symbol") "#" @character("aeiou") "i" 字符串 @string @string() "%#Vwj" @string(length) @string(5) "^16)1" @string(pool,length) @string("lower",5) "zrcmq" @string("upper",5) "PFTFP" @string("number",5) "96480" @string("symbol",5) "#&!!(" @string("aeiou",5) "uoauu" @string(min,max) @string(7,10) "0B(6!)5[)" @string(pool,min,max) @string("lower",1,3) "zz" @string("upper",1,3) "OZJ" @string("number",1,3) "61" @string("symbol",1,3) "@%" @string("aeiou",1,3) "au" 范围 @range(stop) @range(10) [0,1,2,3,4,5,6,7,8,9] @range(start,stop) @range(3,7) [3,4,5,6] @range(start,stop,step) @range(1,10,3) [1,4,7]
  • 背景介绍 随着微服务系统及分布式架构的发展,多模块或子系统的依赖为软件系统的开发与测试带来了很多挑战。比如在测试某个模块时,依赖的第三方服务不能返回想要的结果,或第三方服务不稳定时,该模块的测试进度则会受到影响。 Mock服务能很好解决这些问题,使用场景如下: 并行开发:在被依赖模块未开发完成时,使用Mock服务替代真实业务服务场景,可进行并行开发。 依赖服务不稳定:当依赖服务不稳定时,会导致自动化测试用例失败,使用Mock服务替代真实服务,可以保证自动化测试稳定执行,提升流水线的健壮性。 构造异常场景:测试时需要构造某些异常数据或延迟响应等异常场景,真实服务通常无法满足需求,使用Mock服务替代可以快速构造异常场景,提升测试覆盖率。 前后端分离开发:前端开发往往依赖于后端数据接口,在后端接口就绪之前,前端往往很难推进,前端可以通过Mock功能制造场景数据接口来进行开发与调试。 父主题: API Mock
  • 执行流程 CodeArts API提供基于JavaScript的脚本引入,通过脚本可以实现在快捷调试或接口请求时添加动态行为。脚本执行流程如图: CodeArts API兼容Postman脚本语法,可以将Postman脚本迁移到CodeArts API中使用。 CodeArts API脚本能力仅限于快捷调试、接口调试、接口调试用例。 接口的前置脚本与后置脚本支持配置多个,并按照配置顺序执行。 CodeArts API支持脚本输入提示。 父主题: 脚本能力
  • 对于响应的处理 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”。 请求方式 定义接口的请求方式,制定了客户端对服务端资源操作的方法,在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体数据结构自动生成示例,或将手工编写Body示例智能导入数据结构中。 接口返回响应 返回响应的定义包含:返回响应的状态码、响应内容的数据结构、响应示例和响应头。 返回响应的状态码:通过加号来添加运行接口后可能的响应状态码,单击响应状态码可以对状态码进行修改。 响应内容的数据结构:规定响应内容的格式,分为“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文件导入。 导入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。 无法保存重复规则。如果同一个接口下的不同规则配置内容一致,会提示无法保存规则。
  • 使用方式 /** * 示例一:该示例引入加密算法模块 crypto-js,并使用其中 AES 对 message 进行加解密 * @param message 需要加密的文本 * @param key 秘钥 */ function cryptoJSTest(message, key) { const CryptoJS = require('crypto-js'); // 加密 const ciphertext = CryptoJS.AES.encrypt(message, key).toString(); // 解密 const bytes = CryptoJS.AES.decrypt(ciphertext, key); const originalText = bytes.toString(CryptoJS.enc.Utf8); console.log(originalText); } cryptoJSTest('test message', 'secret key'); /** * 示例二:该示例引入 uuid 模块生成一段 uuid,并引入 btoa 模块进行 Base64 编码 */ function uuidBtoaTest() { const uuid = require('uuid'); const btoa = require('btoa'); const id = uuid.v4(); const base64EncodedId = btoa(id); console.log(id); console.log(base64EncodedId); } uuidBtoaTest(); /** * 示例三:该示例引入 lodash 模块,并测试了其中的 uniq 对数组去重 */ function lodashUniqTest() { const lodash = require('lodash'); const arr =[1, 2, 1, 5, 1, 9] const uniqArr = lodash.uniq(arr); console.log(uniqArr.toString()) } lodashUniqTest();
  • 内置类库列表 断言 chai (v4.2.0):用于断言BDD/TDD断言。 加密解密库 jsrsasign(10.3.0):用于RSA加密/解密。 Encode、Decode 库 crypto-js(v3.1.9-1):编码/解码库,基本包含常用的编码、解码方式,如Base64、MD5、SHA、HMAC、AES等等。 require方法只允许使用整个模块,不能单独使用类库里的某个子模块,具体看本文档末尾说明。 atob(v2.1.2):用于Base64解码。 btoa(v1.2.1):用于Base64编码。 tv4(v1.3.0):用于校验JSONSchema。 xml2js(v0.4.19):用于XML转JSON。 JSONSchema校验库 ajv(v6.6.2):校验JSONSchema。 实用工具 postman-collection( v3.4.0):Postman Collection库。 cheerio(v0.22.0):jQuery的子集。 lodash (v4.17.11):JS实用工具库。 uuid :生成UUID。 moment(v2.22.2):日期处理库 (不含 locales)。 mockjs:模拟数据生成,拦截Ajax请求。 csv-parse/lib/sync( v1.2.4):处理 CS V格式数据。 iconv-lite:用于字符编码转换,支持数十种字符编码格式的转换。 内置NodeJS模块 path:处理文件路径。 assert:提供一组断言测试。 buffer:处理二进制数据。 util:实用函数的集合。 url:解析URL字符串。 querystring:处理URL,查询字符串。 punycode:字符编码方案。 string-decoder:将Buffer对象解码为字符串。 stream:处理流数据。 events:处理事件。 timers:在给定的毫秒数后调用函数。 通过require方法可以直接使用CodeArts API内置的JS类库。 var cryptoJs = require("crypto-js"); console.log(cryptoJs.SHA256("Message"));
  • Markdown设计 新建Markdown,可通过以下三种方式完成。 方法一:单击“新建 Markdown”图标。 方法二:单击目录树搜索框右侧的,在弹出的下拉框中,选择“新建Markdown”。 方法三:在目录树中选择一个目录,单击右侧图标,在弹出的下拉框中,选择“新建Markdown”。 进入“新建标签页”,在该标签页可以编辑Markdown文件,主要包括:目录、名称、正文。 目录:在上一步中,如果通过方法一和方法二新建Markdown,目录初始内容为空,可以手动选择;如果通过方法三新建Markdown,目录会自动生成为选中的目录,也可以手动修改。 名称:可根据业务需要自定义命名,不能为空。命名规则:只支持中文、英文、下划线、数字和“.”,且以中英文开头,长度为3-64个字符。 正文:可手动输入文字,也可使用组件插入特定的内容,如:表格、超链接、图片;正文样式也可以使用组件进行调整;正文编辑支持全屏模式;在左侧编辑正文时,右侧会同步展示编辑内容,便于查看、修改样式等。 编辑完成后,单击右上角“保存”,左侧目录树同步刷新,界面会自动跳转到文档页面,展示名称、正文,上方标签页的名称也会更新为Markdown文件名称。 移动Markdown(可选)。 单击并拖拽Markdown到目标目录后释放即可,移动成功后,目录树会自动刷新,Markdown文件的目录也会同步改变。 Markdown文件只能在同一根目录下进行移动。 处于编辑页面的Markdown文件不能移动。 父主题: API设计
  • 请求体 在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调试页面的接口路径,可以选择http或https,并在定义的路径前自动添加了域名。添加的域名是在右上角选择的环境参数中定义的,单击左侧下拉箭头可在不同运行环境间切换,单击下拉箭头右上角按钮,可进行环境参数配置。 针对各个环境,默认提供变量“hostURL”参数作为添加到接口前的域名,从而拼接成完整地址。 可以看到对应环境“默认环境”中的“hostURL”参数的值“127.0.0.1:8080”被添加到接口URL前,作为整个路径的域名。鼠标悬浮在路径前,提示次前置URL来自于哪一环境,单击环境名称,可直接跳转至相应环境下进行编辑。 路径中大括号“{}”中的字符串表示Path参数。 路径中“?”后的字符串表示Query参数。 如果在调试页面路径栏下方的Query属性框中,对Query参数进行修改,路径中的Query参数也会同步变化。
  • 断言 可以利用后置脚本验证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; });
  • API开发 CodeArts API支持生成接口请求代码和业务代码,缩短前后端开发时长,规范代码结构。 基于接口定义,CodeArts API支持自动生成各种语言和框架的请求代码和业务代码。在API设计模块,接口文档界面右侧,即可看到“生成代码”的入口。 生成接口请求代码 单击“生成代码”下拉框,选择“生成接口请求代码”,弹出“生成接口请求代码”对话框。 支持生成多种语言的接口请求代码,单击右上角,可一键复制并直接粘贴,支持编辑修改和代码格式化。 生成业务代码 单击“生成代码”下拉框,选择“生成业务代码”,弹出“生成业务代码”对话框。 根据需要选择语言、生成范围(包括“仅当前接口及关联模型”和“整个项目”),单击“生成”将生成的代码存储到本地,开发者可以将代码复制到本地的研发工具(如IntelliJ IDEA)。
  • Name相关 分类 规则 示例 示例结果 英文名 @first @first() "Michelle" 英文姓 @last @last() "Williams" 英文姓名 @name @name() "Michelle Williams" @name(middle) @name(true) "Karen Lisa Harris" @name(false) "Karen Harris" 中文姓 @cfirst @cfirst() "张" 中文名 @clast() @clast() "三" 中文姓名 @cname @cname() "张三"
  • Helper 分类 规则 示例 示例结果 全大写 @upper(str) @upper("hello") "HELLO" 全小写 @lower(str) @lower("HELLO") "hello" 多选一 @pick(arr) @pick(["hello", "test", "test3"]) "hello" @pick([1, 5, 10, 60, 80]) 10 @pick([1,"hello","中国",true,80]) true
共100000条