现在有一种常见的情况,公司引入了某个大平台实施Devops,例如BAT某家的云效,但是在接口自动化这一块,功能无法满足自己项目组的需要,而平台方开发此功能又遥遥无期,这时应该怎么办?
我一直认为,做接口自动化测试,不是抓下报文,填下参数就够了. 遇山开路,遇水搭桥, 能解决工作中遇到的各种奇葩问题,才是一个自动化测试人员的基本素养.
一个真实的例子
公司的手机app, 需要做接口自动化测试. 每个接口请求都必须携带token,而token无法从服务端数据库拿到,必须通过模拟客户端登录流程来拿到服务端返回的token. 但是从app端发往服务端的登录报文做了加密处理, 服务端必须做解密操作才能解析收到的报文,并且无法通过配置处理来绕过解密. 然而公司引入的自动化平台并不支持报文加密,怎么办?
常见的解决方案: 提需求给自动化平台方,要求对方上加密功能.
如果对方是小公司,你是大客户,说不定这事就成了.
但如果对方是BAT,你是小客户呢?
…等吧.
解决方案
解决这个问题并不复杂.
自己在内网申请一台服务器, 用python的flask-restful
库搭建一个restful服务. 这个服务接收一个Post请求,参数有登录手机号,密码,目标URL. 收到这个Post请求后, 用Python代码模拟app客户端,仿写并执行登录流程涉及的全部接口,并拿到token,然后返回给调用服务的人(接口测试用例).