今日目标
今天准备讲解一下怎么用postman工具去实现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中写了几条用例,并且也加入了一些简单的断言操作:
如果你们能够把以上的这些场景都实现的话,那postman工具还是玩的很熟练的了。欢迎关注我的公众号,查看更多干货。
关键脚本: