5分钟教程:使用ApiChain对接注册登录鉴权流程

89 阅读3分钟

本教程假设你对ApiChain基本使用:环境、项目、迭代管理,环境变量、项目公共请求单侧,发送网路请求、保存迭代文档,编写迭代单侧用例等已经基本了解,在此基础上学习ApiChain的高级使用。如果还不了解,参考这个链接

ApiChain项目链接:ApiChain:基于版本迭代和项目视角的接口测试和文档生成

本教程在上一篇讲述基本使用的前提下,以企业常见的登录注册鉴权流程为例,确保项目上线回归测试用户登录注册这块功能不出问题。

初始化

新增一个项目,具体内容见下图,不展开讲

用户管理——项目列表

新增迭代,具体内容见下图,不展开讲

用户演示项目——迭代

配置项目调用接口的地址前缀为https://pay.apichain.app/test/user/

演示项目——配置接口地址

用户注册

从迭代入口进入到发送网络请求页面,接口地址 register ,提交数据如下

  • userName {{$randomString}}
  • password {{$randomString}}
  • email {{$randomEmail}}
  • age {{$randomAge}}

本次我们使用了 ApiChain 支持的内置函数,所有支持的函数列表,输入 {{$ 时能够看到,关于支持的内置函数的完整列表,参考这个链接。

用户注册——网络请求

从这个返回报文中,我们看到注册后,返回的header(responseHeader)中包含了一个用于登录鉴权的jwt,返回的主体意思是注册成功,也给了注册的用户信息。我们先把它保存到接口文档。

保存用户注册1

这些参数都是必填的,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

application/json根据邮箱登录

这样,就完成了一个application/json的网络请求,点击保存按钮保存到迭代文档。

application/json方式登录——保存

通过 jsonString 方式实现用户登录

在实际开发过程中,我们经常会遇到表单某个字段参数是一个json格式的报文,在我们编写单测时,需要能够自动构造出这样的json格式的报文,为此,我们的demo的登录也支持了 通过jsonString的方式提交登录数据。

接口地址 login-by-jsonstring, 参数 str,类型 jsonString,示例如下:

{
	"type": "by_email",
	"email": "username@email.com",
	"password": "password"
}

json登录

把他保存到迭代文档,保存时参数类型选择 json字符串。

json登录——保存

到此,用户注册登录鉴权涉及的所有接口都登记到迭代文档中了。

用户管理接口列表

文档——接口列表

接口文档详情