在 Robot Framework-用户关键字的使用方法(6) 讲到了用户关键字的使用,
这篇文章是对它的补充,我们都知道在自动化测试用例中,实现业务逻辑和测试数据的分离,使得代码结构更清晰,方便后期维护。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
该接口的功能是:租户认证用户登录后显示5个菜单(新增菜单‘我的学校’)
接口测试用例:
1、用户未登录时,只显示4个
2、租户的认证用户登录,显示5个
3、租户的非认证用户登录,显示4个
4、非租户的认证用户登录,显示4个
测试流程:指定用户信息--》拼接post请求--》对返回数据进行提取,验证是否满足预期
会发现,每个场景都有‘发送请求(传递参数一样,值不一样)’、提取目标数据并判断是否满足预期(只有2种预期结果),所以有必要将公共部分写成函数,进行调用。
- post请求需要传入参数(用户信息),并将响应数据返回(set suite variable),
- 提取目标数据需要传入参数(response的数据),并断言 (如果提取操作比较繁琐,也可单独抽离成一个函数)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这是用户登录的公共函数
这是提交post请求,并将响应结果return给下一个函数使用。
这是测试用例,调用login登录后,post请求时,传入login设置的全局变量,断言时,传入post设置的suite variable变量。
======================================================================================================================================================================
这期间遇到的问题:
Q1:调用post请求,传参时,参数传不进去,在fiddler中,看到webfrom是空的
A:post请求时,create session时,加上header即可。(截图中有提示需要传入header)
Q2:post请求 函数化时,传参个数不确定时,应该怎么来写这个函数?
出于这样的场景:未登录时,该接口只需要传入APP的version,登录后,才需要传入user信息。
后来将不需要传入的参数置为空了,即参数个数仍固定。
注意:传入参数为空时,userid= ,等号前面的名字与post请求定义时的名字要一样,不然报404错误。
Q3:函数的return使用,是否适用?
A:适用,就可以不用set suite variable
或
==========================================================================================
常用方法:
${len} Get Length ${modList}
Should Be True ${len}<=4