本教程假设你对ApiChain基本使用:环境、项目、迭代管理,环境变量、项目公共请求单侧,发送网路请求、保存迭代文档,编写迭代单侧用例等已经基本了解,在此基础上学习ApiChain的高级使用。如果还不了解,参考这个链接
ApiChain项目链接:ApiChain:基于版本迭代和项目视角的接口测试和文档生成
本教程在上一篇讲述基本使用的前提下,以企业常见的登录注册鉴权流程为例,确保项目上线回归测试用户登录注册这块功能不出问题。
初始化
新增一个项目,具体内容见下图,不展开讲
新增迭代,具体内容见下图,不展开讲
配置项目调用接口的地址前缀为https://pay.apichain.app/test/user/
用户注册
从迭代入口进入到发送网络请求页面,接口地址 register ,提交数据如下
- userName {{$randomString}}
- password {{$randomString}}
- email {{$randomEmail}}
- age {{$randomAge}}
本次我们使用了 ApiChain 支持的内置函数,所有支持的函数列表,输入 {{$ 时能够看到,关于支持的内置函数的完整列表,参考这个链接。
从这个返回报文中,我们看到注册后,返回的header(responseHeader)中包含了一个用于登录鉴权的jwt,返回的主体意思是注册成功,也给了注册的用户信息。我们先把它保存到接口文档。
这些参数都是必填的,age 字段类型是数字,其他都是字符串,返回的header 中包含 jwt,我们用来登录的令牌。点击保存。
根据昵称获取用户头像
接口地址 avatar/,路径变量如下:
nickname:Mustafa
点击发送请求,可以看到uri变成 avatar/{{nickname}},实际上,这只是一个规范,你可以根据{{nickname}}实际的位置重新调整。接口返回是一张图片,可以将这个返回图片的接口保存到迭代文档中。
获取登录用户信息
从迭代文档中找到刚刚新增的用户注册接口,点击发送按钮。
点击发送请求按钮(此刻你会发现随机不重复的好处了,继续注册不要做任何修改),点击复制按钮,复制返回的jwt,粘贴到记事本中,后面流程会用到。
接口地址 get-login-user ,参数 header 的 key 是 Authorization,value 是 bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI5Iiwic3ViIjoiQXBpQ2hhaW5fOGIzNzM1YWEtOTg2Mi00MDViLTllOTUtNWI2YzI5ZWI5MmNlIiwiaWF0IjoxNzM3OTczMzk3LCJleHAiOjE3Mzc5NzY5OTd9.A0bZ69TZE-412nFz1NqxffRh2y06mEHxTEIBcLndqyg ,也就是 bearer 加上你刚刚复制保存下来的那个jwt。
点击发送请求按钮,可以看到能够根据这个认证令牌拿到用户信息,这个令牌有效期 30 分钟。点击保存按钮,迭代文档新增我们的第二个接口。
通过 application/json 方式实现用户登录
这个demo的登录方式既支持 邮箱+密码登录,也支持 用户名+密码登录,可通过 application/json 方式提交数据。
邮箱+密码 登录方式提交的报文是
{
"type": "by_email",
"email": "username@email.com",
"password": "password"
}
用户名+密码的登录方式提交的报文是
{
"type": "by_uname",
"userName": "userName",
"password": "password"
}
请求地址 login,header中 content-type 选择为 application/json,在主体部分粘上请求的报文,就可以发送一个登录请求了。
这样,就完成了一个application/json的网络请求,点击保存按钮保存到迭代文档。
通过 jsonString 方式实现用户登录
在实际开发过程中,我们经常会遇到表单某个字段参数是一个json格式的报文,在我们编写单测时,需要能够自动构造出这样的json格式的报文,为此,我们的demo的登录也支持了 通过jsonString的方式提交登录数据。
接口地址 login-by-jsonstring, 参数 str,类型 jsonString,示例如下:
{
"type": "by_email",
"email": "username@email.com",
"password": "password"
}
把他保存到迭代文档,保存时参数类型选择 json字符串。
到此,用户注册登录鉴权涉及的所有接口都登记到迭代文档中了。