接口测试平台——while循环超时错误原因之一原创
金蝶云社区-苏中武
苏中武
3人赞赏了该文章 14次浏览 未经作者许可,禁止转载编辑于2024年11月22日 10:28:17
summary-icon摘要由AI智能服务提供

接口测试平台的公共流程组件<等待执行>在while循环中出现超时错误。原因是前面的接口组件提取了变量名为data的值,导致while循环判断data时陷入死循环。错误定位是后续getPercent请求返回响应体为空,导致超时。解决方案是修改接口组件的变量data。

接口测试平台的公共流程组件<等待执行>出现while循环超时错误。

本案例分析错误原因:因前面的接口组件提取了变量名为data的值,导致while循环内部判断data值时,使用此数据而导致死循环。


错误定位:前一个getPercent请求正常返回响应体,后一个getPercent请求返回的响应体为空,后续getPercent请求均返回为空,导致超时错误,如下图。

image.pngimage.png
图1 执行结束后仍然执行循环,返回响应体为空 图2 后续循环均返回空的响应体,导致超时错误

错误分析:

(1)结合自动化用例while循环最后有响应体的data数据,分析公共流程组件<等待执行>,退出循环的条件,如下图;

image.pngimage.png
图3 while循环结束条件之一:data包含download.do图4 while循环的最后一个存在响应值的data存在download.do

循环结束条件有三条:响应体包含非空的pagerows值、响应体包含download.do、响应体包含ShowNotificationMsg。本用例满足第二条,但是未正常退出循环。

(2)对比公共流程组件<等待执行>的使用,发现存在用例执行成功,排除组件问题;

(3)分析自动化用例,发现自动化用例中存在提取data值的接口组件,如下图;

image.png

图5 存在提取变量名为data的自定义接口组件

错误原因:因<等待执行>组件前面存在接口组件提取data的值,因此while循环内部判断data是否存在download.do时,被此data替换而不存在download.do,从而导致死循环,出现while循环超时。


解决方案:修改接口组件的变量data(非必要,不自行设置变量data,以免和已有组件冲突)。

图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!