1.自动完成请求上下文传递中的cookie

关键字create session会创建session对象,下一个请求带上session别名,该session对象会自动完成请求在上下文传递过程中的 Cookie 处理

场景举例:获取用户信息
url:https://te**ort.rab*.com
登录接口:POST api/sso/login
获取用户信息: GET api/sso/getUserInfo
获取用户信息接口直接调无需传参,参数信息从请求(登录接口)cookie中获取,这时候我们可以通过同一个session实例发出的请求之间保持cookies

  1. *** Settings ***
  2. Resource ../../../../Resources/Business/http通用请求/http_requests.robot
  3. Library Collections
  4. Library HttpLibrary.HTTP
  5. Library RequestsLibrary
  6. *** Test Cases ***
  7. 获取用户个人简略信息_保持会话_Get
  8. sso_login 15813349620 111111 pc #登录接口
  9. ${header_dict} Create Dictionary Content-Type=application/json
  10. #根据session别名:TZ_robotframework控制是同一个session
  11. ${res} Get Request TZ_robotframework api/sso/getUserInfo #请求获取用户信息接口
  12. Log Json ${res.content}
  13. *** Keywords ***
  14. sso_login
  15. [Arguments] ${account} ${password} ${fromType}
  16. ${host} Set Variable http://tes*****rt.ra******.com
  17. ${path} Set Variable /api/sso/login
  18. ${datas} Create Dictionary
  19. Set To Dictionary ${datas} account ${account}
  20. Set To Dictionary ${datas} fromType ${fromType}
  21. Set To Dictionary ${datas} password ${password}
  22. ${params} Set Variable
  23. ${res} requests_post ${host} ${path} ${datas} ${params}
  24. ${cookies} Set Variable ${res.cookies}
  25. Log Json ${res.content}
  26. #提取json数据方式一:
  27. ${info} Get Json Value ${res.content} /msg #填写数据所在层级路径提取json信息
  28. # 断言验证
  29. Should Be Equal As Strings ${info}} ok

2.获取token

第二个请求要发往另一个host/域名,如某些app接口请求参数中需要带上cookie/token字段,这时候新请求可能需要创建另一个session,将cookie主动加到请求参数中,例如添加在headers中

场景举例:获取用户信息
登录url:https://test*rt.ra*.com
获取用户信息url:https://bws.te*re.com
登录接口:POST api/sso/login
获取用户信息: POST /api/user

  1. *** Settings ***
  2. Resource ../../../../Resources/Business/兔展登录token获取/ssoLogin.robot
  3. Library Collections
  4. Library HttpLibrary.HTTP
  5. *** Variables ***
  6. ${host} https://bws.test.ra****e.com
  7. ${path} /api/user
  8. *** Test Cases ***
  9. 获取用户信息_Get
  10. ${res_token} sso_login_token 158****** 111111 pc ok #获取并返回token
  11. ${datas} Create Dictionary
  12. ${params} Create Dictionary
  13. ${headers} Create Dictionary Cookie=${res_token}
  14. #发起请求获取用户信息接口并添加cookies到请求头
  15. ${res} requests_get ${host} ${path} ${datas} ${params} ${headers}
  16. Log json ${res.text}
  17. # 断言判断
  18. Should Be Equal As Numbers ${200} ${res.status_code}
  19. ${errorcode} Parse Json ${res.content}
  20. ${errorcode} Get From Dictionary ${errorcode} errorcode
  21. Should Be Equal '${errorcode}' '0'