之前介绍了如何通过RF发送请求以及如何设置check点

先看场景:

有一个新增资源的接口,这个接口可以新增各种类型的资源,对传参又有各种要求,非空啊非法啊没权限啊等等,先大概罗列一下测试点,随便一写就非常多了

下面这些测试用例有个特点就是都是调的同一个接口,只是传递的参数的值不同而已以及check的点不一样

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

假设在不使用用户关键字的情况下,基本上都是下图那样的调用

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

多写几个后发现标红那一块在重复使用,那我们可以考虑创建一个用户关键字,该关键字专门用于发送新增资源的请求,把接收到的参数拼凑好以后发送一个post请求,然后再把结果返回 

为了方便更好的管理,我们重新创建一个目录专门拿来存放用户关键字、数据等资源。同时为了更好的管理关键字,我们把关键字放在不同的resource模块下,也就是先创建resource,再在resource下创建具体的关键字

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

创建关键字:

arguments是调用该关键字需要传递的参数

${xx}=${EMPTY},这样书写就表示该变量可以不传,${xx}=xx,这样书写表示如果该变量没传值,则会默认使用xx作为变量的值,${xx},这样书写则表示该值必填。必填参数必须位于最前面,后面再跟可以为空和有默认值的参数(这两个没有顺序之分)

return value就是调用了该关键字后的返回值

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

PS:由于关键字里面用到了RequestsLibrary里面的东西,所以需要在上级resource模块里面导入RequestsLibrary库,后面再具体介绍如何管理这些资源之间的导入引用等  

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

 关键字创建好以后,怎么在测试用例里面使用呢?

首先要在测试用例上级的suite里面导入reource,把关键字所在的resource导入进来

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便

导入成功后就可以直接使用刚才创建的关键字了

robotframework——创建用户关键字(user keyword),让重复的代码使用起来更方便用${code}和${text}两个变量去接收关键字api res add的返回值

把一个接口写成一个关键字,在不同的测试用例里面,通过传递不同的参数值调用一个关键字,这样一目了然,重点是减少了代码的冗余

留个疑问:

如何实现在关键字里面让某些参数不传?

 

相关文章: