• 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像是下图这种,如果在字典里还要嵌套字典或者列表,这种方法也是不可用的。但是优化也很方便,就是可以先读一个含有发送报文的文本。

    运行得到:

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

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

  • 相关阅读:
    【原创】大数据基础之调度框架
    使用mysql索引的规则
    mysql分区(partition)
    mysql-主从复制(二)
    yum 一些命令
    centos 升级php、mysql(webtatic)
    Linux 查找文件方法
    mysql-备份和还原(普通还原和binlog还原)
    mysql-主从复制(一)
    GSAP JS基础教程--动画的控制及事件
  • 原文地址:https://www.cnblogs.com/captainmeng/p/7668027.html
Copyright © 2020-2023  润新知