robot接口自动化用例编写

第一个http接口

*** Settings ***
Library  Collections
Library  Process
Library  RequestsLibrary
 
*** Variables ***
${DOMAIN}       http://10.xx.xx.xx:8091
${URI}          /test/backend/xxxxlogin
${HEADER}      {"Content-Type":"application/json"}
${USER}        {"accountType":"1", "phonenumStr":"iamusername", "password":"iampassword"}
${LIST_ANIMALS}    ["cat", "dog"]
 
*** Test Cases ***
my first http test case
    create session  myhttp          ${DOMAIN}
    ${uri}          set variable    ${URI}
    # headers一定要转成 json,不然data传不过去   
    ${header}       to json         ${HEADER}
    ${postdata}     to json         ${DATA}
    ${resp}         post request    myhttp    uri=${uri}      data=${postdata}       headers=${header}
 
    # 校验 http的状态 
    should be equal as integers  200    ${resp.status_code}
    # 打印 调测信息
    #log     ${resp.content}
    #log     ${json}
    #log     ${json[0]}
    #log     ${json[1]["id"]}
 
    ${json}   to json     ${resp.content}
    # 校验返回数据的关键值
    should be equal as strings   2.0   ${json[1]["jsonrpc"]}

多步操作
所有的返回值都是字符串类型,转成json后就可以像字典型一样随意取用了

${json}   to json     ${resp.content}
把取到值当成下一次调用的入参
建议每个testcase只测试一个功能,接口测试阶段,不要构造过于复杂的场景(用例代码超过一屏将被视为复杂,需要拆分)

结果校验
请求http获得的返回都是字符串类型,解析成json才可以自由取用值
提供多种校验函数如下:

should be equal as integers    
should be equal as numbers  
should be equal as strings
should be true
should be empty
should contain  
should contain any
# not 也支持 
should not be equal as integers    
should not be equal as numbers  
should not be equal as strings
should not be true
should not be empty
should not contain  
should not contain any

数据驱动
robot宣称支持数据驱动,支持按照template从表格读数据来跑用例,但是问题是,如果要对数据表格里的case做拣选和拆分就会无力了,所以,数据驱动适合比较大规模的协议测试,而对于有细力度的统计case的需求是不好用的,我们的建议是用测试数据分散在testcase里,保持case的独立性和灵活性,如果确实有大量的手工操作的话,提供小工具自动创建testcase。

数据驱动即为定义好流程(Template),然后就可以按照参数罗列形成用例了,每一条数据都会独立执行

*** Test Cases ***
Invalid Username
    [Tags]    Iteration-3    Smoke
    [Template]  Login with invalid credentials should fail
    invalidname      qwe123
    091931          invalidpassword
 
*** Test Cases ***
Login Success
    [Tags]    Iteration-3    Smoke  core
    [Template]  Login success
    068970          qwe123
    052255          qwe123

前置条件(可选)
一个用例文件中包含很多testcase,我想统一加些动作该怎么办?框架提供两个方法,如果是前置条件(每个用例开始前执行)就用Set up,在setting里编写你的动作即可,如果动作很复杂,可以做成关键字调用即可,就像下面一样:

 
    *** Settings ***
    Test Setup      Get config
 
    *** Keywords ***
    Get config
            log     正在初始化...
            set suite variable  ${config}       {"env":"uat", "user":"haha"}

清理动作(可选)
如果是后置条件(每个testcase结束后调用),就用Tear down,样例如下:

 
*** Settings ***
Test Teardown   Do clean
 
*** Keywords ***
Do clean
    log     正在清理...

关键字驱动
框架提供自定义的关键字方案,只需要在Keywords下面书写你的逻辑动作即可,关键字可以是英文,也可以是中文,顶格写,不限制空格和特殊字符,你可以像书写自然语言一样写用例代码啦

*** Keywords ***
My first keywords
    log     hello keywords
 
我的第一个关键字
    log     你好, 我的关键字

转载于:https://blog.51cto.com/7717647/2088640

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值