编写一个登录接口测试脚本过程中遇到的坑

在页面上抓包,该登录接口有如下参数:

编写一个登录接口测试脚本过程中遇到的坑

 

第一个坑:

https请求需要加verify=False

requests.post(url,data,verify=False)

第二个坑:

没注意传参格式,用json传参请求接口,接口返回原始登录页面,为啥传参格式不对接口没报错呢,因为该接口没有接收到参数时也可调通。。。

实际接口要求参数格式为x-www-form-urlencoded

第三个坑:

传参格式正确之后,postman调用接口一直no-response,python代码调用一直返回服务器积极拒绝,怀疑是传的参数的内容有问题

经过多次抓包分析,发现传参的lt和execution字段是在实时变化的,抓包发现网页上登录时,浏览器在请求登录接口前,调用了一次get登陆页面,调用接口返回的是登陆页面的html,里面就可以解析出lt参数和execution参数

第四个坑:

取出lt参数和execution参数后,调用登录接口还是返回服务器积极拒绝

通过一通搜索+请教同事,发现调用get登陆页面获取参数和调用登录接口这两步操作,需要进行session保持,

实例化一个requests.session()对象,使用该对象的get和post方法来调用接口即可

实例如下:

编写一个登录接口测试脚本过程中遇到的坑

编写一个登录接口测试脚本过程中遇到的坑

 

 至此,才终于调通了这个破登录接口!!!