5b0111c5fe937c2759587e131121f42f.png

 

今日目标

今天准备讲解一下怎么用postman工具去实现RuoYi后台管理系统的验证码获取以及自动登录功能 。

在开始做自动化之前,需要先抓包熟悉接口相关的请求参数,详情请见文档:

项目实战-RuoYi后台管理系统-登录相关接口分析

今天主要演示验证码获取的接口以及登录接口的接口自动化。

实现思路分析

 实现的难点:

1、验证码获取接口,返回的是一个编码后的字符,不是直接返回的验证码的具体数值

思路分析:

针对这种有动态验证码的接口,如果需要做自动化的话,可以考虑以下几种方式:

1、后台在测试环境设置万能验证码,便于测试

2、直接将验证码的开关关掉

3、基于图像识别的方式去识别验证码的信息

4、查数据库获取到验证码的值

以上的思路是针对于做接口自动化的部分可选方案,部分方案在postman中去实现的话,不是这么的方便。

说明:

1、目前已在后台设置一个万能验证码,用于方便做自动化测试

2、该项目目前也是支持关闭验证码的,有开关可以进行配置

3、基于验证码接口返回的信息去解析,以及图像识别,这点的话,在postman中比较难实现

4、查库获取验证码,目前验证码存储在redis中,postman查redis的数据没有现成的脚本,目前内置的js库貌似不支持直接查,等后续如果支持了再考虑。不过可以用一种间接的方式,那就是自己写python接口去查redis的数据,然后将自己的接口部署成服务,在postman的前置脚本中去调用。

做过的尝试

1、尝试在postman上对接口返回的base64编码的数据进行解码,还原成验证码图片 --pass

2、尝试通过postman的前置脚本对验证码图片进行解析--failed

3、尝试在postman中写js脚本查redis数据库的数据--failed,postman官网内置的js库貌似不支持这些骚操作,官方提供的一些内置的js扩展库的文档如下:https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#using-external-libraries

4、查一下redis有没有提供接口可以直接查询数据库的数据,最后群里的大佬提供了一个叫Webdis的开源工具,github地址如下:https://github.com/nicolasff/webdis ,不过我在服务器编译代码会报错,感兴趣的可以自己去试试。

5、自己用python定义一个查询redis的接口,用来给postman的前置脚本中调用

针对以上的尝试,未尝试成功的,如果有哪位大佬有相关经验尝试成功了,欢迎分享给我互相学习一下。

测试场景梳理

练习使用的话,这里只梳理一些简单的场景,不会去考虑所有的case的实现。后续有需要的话,可以在群里沟通,一起完善case的postman脚本。

场景如下:

1、验证码的获取是否正常

2、用失效验证码能否登陆

3、验证验证码使用一次后是否失效

4、模拟正常登录的场景

5、模拟登录失败的场景

包括但不限于以下场景:

  • 用户名或密码错误

  • 验证码错误

  • 验证码过期

实战效果展示

 最终在postman中写了几条用例,并且也加入了一些简单的断言操作:

9cf56610ef4edaddeab26eb170641f7a.png

f050463ae5dfc631e89f633312bd8da4.png

如果你们能够把以上的这些场景都实现的话,那postman工具还是玩的很熟练的了。欢迎关注我的公众号,查看更多干货。

关键脚本:

b28ec8ea574aba9297f2ffcbbb6bce94.png

fb81d7e92de21588f57eda9893bf128c.png

如需获取相关脚本,请添加好友进行获取。获取条件:自己在本地有进行相关接口的测试和脚本编写,脚本仅供参考,拒绝伸手党和收藏家。想要进群或者获取实战项目相关信息的,请加微信好友索要。

Logo

快速构建 Web 应用程序

更多推荐