robot framework cookie传递的两种方法

背景:
最近由于项目需要进行接口自动化,自己也很久没用过了,于是自己网上找了一些实例。有一个需要传递cookie的接口:先登录网站,响应头set-cookie返回sessionid,在后续的修改用户等接口中需要带上该sessionid。于是自己网上参考了一些文章,利用requestlibrary跟httplibrary.http这两个库中的关键字写了两种方法,用例有些繁琐,可能思路有些绕弯了,希望有大佬指点一二,感激不尽。
用到的library:
Library RequestsLibrary
Library HttpLibrary.HTTP
Library String
第一种:
思路:
先调用登录接口,然后利用登录的create session,发起查询请求。因为set-cookie返回的内容会保存在客户端,这样客户端发起相关请求的时候就会使用相应的值。这样在一个测试套中只需要执行一次登录,后面直接调用就可以了。
代码:

0-登录
    ${heards}    Create Dictionary    Content-Type=application/x-www-form-urlencoded
    Create Session    login    http://127.0.0.1:80    ${heards}
    ${body}    Create Dictionary    username    byhy    password    88888888
    ${resp}    Post Request    login    api/mgr/signin    ${body}
    
1-查询客户
    ${params}    Create Dictionary    action    list_customer    pagesize    5    pagenum    1       
    ${dd}    Get Request   login    /api/mgr/customers    params=${params}
    Should Contain    ${dd.text}    "name": "南京中医院3"

第二种:
思路:
我们可以先把cookie提取出来。具体可以使用httplibrary.http这个库中的Get Response Header关键字。
代码:

4-查询客户
    Create Http Context    127.0.0.1:80    http
    Set Request Body    username=byhy&password=88888888
    Set Request Header    Content-Type    application/x-www-form-urlencoded
    HttpLibrary.HTTP.POST    /api/mgr/signin
    ${cookie}    Get Response Header    Set-Cookie
    ${a}    String.Get Substring    ${cookie}[0]    0    42
    Log    ${a}
    ${cookie}    Create Dictionary    Cookie    ${a}
    Create Session    chaxun    http://127.0.0.1:80
    ${params}    Create Dictionary    action    list_customer    pagesize    5    pagenum    1       
    ${dd}    Get Request   chaxun    /api/mgr/customers    ${cookie}    params=${params}
    Log    ${dd.text}    
    Should Contain    ${dd.text}    "name": "南京中医院3"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值