Robot Framework接口测试(1)

RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试。

    做接口测试我们需要做如下工作:

    1、拼接发送的报文

    2、发送请求的方法

    3、对结果进行判断

我们先按步骤实现,再进行RF操作的优化。

 

现在就让我们来完成一个拼接发送报文的方法,这个方法也是小编和同事聊天时无意聊到的,很巧,不知道各位想到没有,反正小编没想到^_^,话不多说,先上代码:

 


#coding: utf-8

import json

class JsonModify(object):

    def __init__(self):
pass
def post_info(self, *parameters):
jsonStr = {}
strDict = 'jsonStr'
for parameter in parameters:
# print(strDict + parameter)
try:
exec(strDict + parameter)
except:
print 'Expression execute failed![',strDict + parameter,']'
raise
return json.dumps(jsonStr)

现在我们来分析一下上面的代码:

首先我们定义了一个post_info函数,参数传的 *parameters可变参数,也就是说我们在传参的时候可以传任意多个参数。

    1、我们先定义了一个空的字典jsonStr

    2、注意,接下来的操作很有意思,就是这里做了一步“很无聊”的赋值操作——把字典名字作为字符串传给了一个变量:strDict = ‘jsonStr’

    3、接下来,我们遍历可变参数(列表),try except属于Python异常处理的知识,很容易,大家可以自己看一下。

        exec译为“执行文本中的Python语句”,也就是说其实我们对传参是有要求的,我们要执行 ‘strDict + parameter’ 这个Python语句,如果无法执行,则走except语句:打印原因并报错(raise)

    4、最后利用json库中的dumps方法把字典转换为字符串(字符串转字典为loads)并返回。

接下来是以前讲过的,先在robot   Library中导入类名JsonModify,然后在测试用例中直接调用函数,函数在调用时下划线其实是可以不写或者用空格代替的

 

注意我们的传参,注意我们的传参,注意我们的传参

 

 

发现参数的特别之处了吗?没错,我们是按着字典的key-value形式传的,这时执行的就是jsonStr['sign']='sign'

这种方法的好处就是以后在拼接报文的时候只要按着这种格式传参,就直接拼好了一个json。但是这种方法也有它的不足,就是如果传10个参数还无所谓,如果传100个参数……没错,只能写100个这个东西^_^而且只能是一层的json像是下图这种,如果在字典里还要嵌套字典或者列表,这种方法也是不可用的。但是优化也很方便,就是可以先读一个含有发送报文的文本。

运行得到:

 

现在我们就完成了拼接发送报文的工作。

 

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

posted @ 2017-10-14 17:45  孟船长  阅读(1343)  评论(0编辑  收藏  举报