7.4.1 添加接口与规则
步骤1 登录软件开发平台首页,搜索目标项目并单击项目名称,进入项目。
步骤2 单击顶部导航栏“测试 > Mock中心”。
步骤3 在页面左侧列表中单击Mock分组名称前的 ,展开分组下面的Mock服务列表。
步骤4 在列表中选择待编辑的Mock服务名称,单击页面右侧“添加接口”。
在弹框中输入接口名称、路径,选择请求方式,单击“确定”。
步骤5 单击接口,页面右侧滑出详情。单击“添加规则”,根据需要添加以下信息。
● 规则名称:根据需要自定义。
● 在“请求”页签配置请求头、请求参数、请求体、IP白名单,如请求参数中输 入:id=123。详细配置方法请参考配置请求规则。
● 在“响应”页签配置详情、响应头、响应体,详情中的响应码为必填。详细配置 方法请参考配置Mock响应。
步骤6 配置完成后,单击 保存规则。
----结束
7.4.2 配置请求规则
请求Mock服务时,系统会根据配置的规则来匹配,只有满足了所有的规则,才能成功 命中。
Mock服务支持以下四种请求条件。请求条件均为选填,当设置了多种请求条件时,需 同时满足这些条件才能够命中规则。
请求头
设置请求头名称和值,通过匹配请求头命中规则。
请求头的值可以设置为动态保存变量,设置方式请参考高级请求配置。
请求参数
设置参数名称和值,通过匹配请求参数命中规则。
请求体
请求体支持json、xml格式。
当请求体为json格式时,匹配规则时只会匹配json中的key,不会匹配value。
请求体中的参数值可以设置为正则表达式、随机数、动态变量等格式,设置方式请参 考高级请求配置。
IP 白名单
只有当请求来自白名单中的IP,且同时能匹配其它请求条件,才能命中规则。
如果白名单为空,则不限制IP地址。
7.4.3 高级请求配置
Mock服务支持在请求头或请求体中使用以下内置函数。
正则表达式
请求体中,可通过#reg("xxxx")设置参数值要符合指定的正则表达式。
例如:在请求体中的配置为{…"token":#reg("[a-z]+")…},实际发送请求为{…
"token":"dugsue"…}。由于“dugsue”匹配正则表达式[a-z]+,所以上述实际发送请 求与规则能够匹配成功。
随机数
请求体中,可通过#range(xx,xxx)设置参数值的取值数字范围。
例如:#range(1,100)表示要求id参数的值的取值范围是1到100的数字。
动态保存变量
请求头与请求体中,可通过#saveAs("xxx")设置将参数值保存到xxx变量中,这样可 以在响应中取到该值。
例如:请求中配置为{…"uuid":#saveAs("id")…},在响应中配置为{…
"token":"{id}"…}。
7.4.4 配置 Mock 响应
Mock服务支持从状态码、响应头、响应体三个维度配置请求的响应。
详情
详情中可配置希望返回的状态码。
状态码是必填项,由三位数字组成。
响应头
输入响应头名称和值,配置希望返回的响应头。
响应头为选填项。
响应体
响应体支持json、xml及自定义文本格式。
响应体为选填项,参数值支持多种格式,详情请参考高级响应配置。
7.4.5 高级响应配置
Mock服务支持使用以下内置函数或变量引用生成动态响应。
引用变量
通过"{xxx}"设置引用变量,可以引用接口路径中的参数(路径变量),或是从请求参数 中提取的变量。
如下图所示,"{device_id}"表示引用接口路径中的{device_id}变量值作为id的返回值。
"{ uuid }"表示引用了请求中#saveAs("uuid")提取的uuid变量值。
延迟响应
通过#sleep(x)设置延迟响应。
如下图所示,#sleep(2)表示暂停2秒,即2秒之后再执行下一个指令。#write("xxx")表 示返回xxx信息。
生成时间戳
通过#dateTime("yyyy-MM-dd'T'HH:mm:ss.SSSZ")设置按指定格式(Java SimpleDateFormat支持的格式)返回当前时间。
例如:响应体配置为{…"Now":#datetime("yyyy-MM-dd HH:mm:ss.SSS")…},消息 匹配成功后,返回:{…"Now":"2020-06-14 07:18:43.779"…}。
递增函数
通过#seq("xxxx")设置获取递增数值变量。函数中仅有一个参数,表示递增数值变 量,变量的起始值为0,增量为1。
每次消息匹配成功后,返回数值会增1。例如下图所示,配置规则为{…
"id":#seq("number")…},首次消息匹配成功后返回{…"id":"0"…};第n次消息匹配成 功后返回{…"id":"n-1"…}。
响应体中的其它参数值可以引用该变量,例如下图所示的规则{…
"uuid":"{number}"…}。
上图中id和uuid的返回值有可能不一样,因为json是无序的,变量引用可能先执行,也 可能后于#seq函数执行。
按格式递增
通过#seqf("haha_%s","id")可实现在格式化文本中设置递增数值变量。函数中有两 个参数,第一个参数是格式化文本,第二个参数表示递增数值变量,变量的增量为1。
例如:配置规则为{…"str":#seqf("haha_%s","id")…},首次消息匹配成功后返回:{…
"str":"haha_0"…};第n次消息匹配成功后返回:{…"str":"haha_n-1"…}。
字符串子串
通过#substring("xxx",x,x)获取字符串的子串。函数中有三个参数:第一个参数是指 定字符串,可以是双引号引出的一个字符串,也可以是一个局部变量(双引号+花括号
引出);第二个参数是起始字符的索引值(含);第三个参数是终止字符的索引值 zhaoyong1985。配置规则为{…"result":#append(#substring("{id}",2,5), "huawei",
"{name}")…},消息匹配成功后返回{…"result":"llohuaweizhaoyong1985"…}。
步骤1 获取用户Token
Token是用户的访问令牌,承载了用户的身份、权限等信息。调用API接口时,需要使
1. 打开Postman,将步骤步骤2中获取的地址填入Request URL。
2. 添加Header,Key为x-auth-token,Value为步骤步骤1中获取的Token。
3. 单击Send发送Mock请求,等候查看Mock响应。