最近项目在做全量自动化测试,在过程种有一些这样或者那样的问题;本文用来自己总结,方便后续再次踩坑,也希望能给各位初入自动化测试的小伙伴一些帮助~
2020-11-10
网站上如果某些uri是类似的,比如:
http://168.63.65.248:8095/fof/api/asset/ 和 http://168.63.65.248:8095/fof/api/asset/categoryList
因为自己不太懂,只能自己形象的比喻它们存在父子关系;在这种情况下,如果对http://168.63.65.248:8095/fof/api/asset/ 接口进行测试,代码如下:
新增配置方案-标准资产分类接口验证
${cookie} ${Xsrf_token} sign in_uat ${systemname} ${env_type} ${host} ${username}
... ${password}
Create Session a http://*******
${headers} Evaluate {'cookie':'${cookie}','Content-Type':'application/json'}
${category} getxls 资产配置模拟 分类id
${params} Set Variable category=${category}
${resp} Get Request a fof/api/asset/ headers=${headers} params=${params}
Should Be True ${resp.json()['code']}==0
Should Be Equal As Strings ${resp.json()['msg']} OK
${data_xls} getxls 资产配置模拟 大类资产data
${data_xls} To Json ${data_xls}
${data} Evaluate ${resp.json()}['data']
Should Be True ${data}==${data_xls}
如果fof/api/asset 后面不跟 “/” ,那么就会报404错误;之前因为没碰到过这种情况,所以一直没在意斜杠。所以建议大家一定要在所有的uri后面加上斜杠,防止踩坑~
2020-11-12更新
这次的需求是:测试新增、删除几个接口。这里有个问题:删除的接口需要传入数据的ID;但是新增数据的接口不返回新增数据的相关信息,所以需要调用一次查询所有数据的接口;根据查询接口返回的列表,找到刚新增的数据的ID,就可以完成整个流程;新增的时候,数据name是“自动化测试-自动删除”,故代码如下:
新增、删除规则接口验证
${cookie} ${Xsrf_token} sign in_uat ${systemname} ${env_type} ${host} ${username}
... ${password}
Create Session a http://*******
${headers} Evaluate {'cookie':'${cookie}','Content-Type':'application/json'}
#调用新增按钮
${data} getxls 监控规则 新增规则data
${data} To Json ${data}
${resp} Post Request a fof/api/riskMonitor/add/ headers=${headers} data=${data}
Should Be True ${resp.json()['code']}==0
Should Be Equal As Strings ${resp.json()['msg']} OK
#调用查询接口,得出新增规则的ID
${resp} Get Request a fof/api/riskMonitor/listRules/ headers=${headers}
Should Be True ${resp.json()['code']}==0
Should Be Equal As Strings ${resp.json()['msg']} OK
@{data} Evaluate ${resp.json()}['data']
:FOR ${rule} IN @{data}
\ ${a} Evaluate ${rule}['ruleId']
\ ${ruleId} Run Keyword If ${rule}['name']=='自动化测试-自动删除' Set Variable ${a}
\ Exit For Loop If ${rule}['name']=='自动化测试-自动删除'
Log ${ruleId}
#调用删除接口
${data} To Json {}
${resp} Post Request a fof/api/riskMonitor/delete/${ruleId} headers=${headers} data=${data}
Should Be True ${resp.json()['code']}==0
Should Be Equal As Strings ${resp.json()['msg']} OK
查询接口返回的数据是