RF(接口自动化测试)

1、在线下载 RequestsLibrary 测试库

  • pip install -U robotframework-requests  -i  https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

2、在 RobotFrameWork RIDE 工具中创建套件,在套件中导入 RequestsLibrary 库

3、常用关键字

4、请求 get 接口

${header}    Create Dictionary    YF-BID=zwy    YF-JWT=eyJhbGciOiJIUz    YF-UID=102299    YF-VER=1.0.0    #定义请求头
Create Session    news    https://apipc.xinqgj.com    ${header}    #创建 http 会话        
${res}    Get Request        news    /cms/1/newses?maxOrMinId=0&size=3    #请求接口        
log    ${res.content}                    
${res_json}    To Json    ${res.content}    #将报文文本格式转换成 json 格式            
log    ${res_json}    

5、请求 post 接口

${header}  Create Dictionary    YF-BID=zwy    YF-JWT=eyJhbGciOiJIUzI1NiIs    YF-UID=    YF-VER=1.0.0    Content-Type=application/json    #定义header头部信息    
${data}    Create Dictionary    phone=1777982xxxx    pwd=123456    validateCode=hrg3    encryptStr=41b4e6    #定义 body 参数        
Create Session    api    https://apipc.xinqgj.com    ${header}    #创建 http 会话                
${response}    Post Request    api    /user/login    ${data}    #请求 post 接口            
log    ${response.content}    #获取报文文本内容                        
${res_json}    To Json    ${response.content}    #将报文文本格式转换成 json 格式                    
log    ${res_json}                            
Run Keyword If    "${res_json}[msg]"=="成功"    log    pass                    
...    ELSE    log    failed                    
${msg}    Get From Dictionary    ${res_json}    msg    #字典取值,需要导入 Collections 库                
log    ${msg}                            
Should Contain    ${msg}    成功    #断言        

 6、处理接口依赖关系

  • 现有登录接口 login 和用户列表接口 userlist
  • userlist 接口中的 cookie 依赖于 login 接口返回报文头中的内容
  • 用例结构如下
    • suite -- 接口测试用例套件
      • testcase -- cms_login
      • testcase -- cms_userlist
"""
-- login 接口
"""
${header}    Create Dictionary    Content-Type=application/x-www-form-urlencoded        
${data}    Create Dictionary    userAccount=admin    loginPwd=123456    
Create Session    cms_login    http://cms.duoceshi.cn    ${header}    
${res}    Post Request    cms_login    /cms/manage/loginJump.do    ${data}
${res_json}    To Json    ${res.content}        
log    ${res_json}            
log    ${res.headers}    #打印报文头内容        
Set Global Variable    ${global_cookie}    ${res.headers}[Set-Cookie]    #取出报文头中的 Set-Cookie 值并且设置全局变量    
"""
-- userlist 接口
"""
${header}    Create Dictionary    Content-Type=application/x-www-form-urlencoded    Cookie=${global_cookie}    #调用 login 接口中的全局变量 ${global_cookie}    
${data}    Create Dictionary    startCreateDate=    endCreateDate=    searchValue=    page=1
Create Session    cms_userlist    http://cms.duoceshi.cn    ${header}        
${res}    Post Request    cms_userlist    /cms/manage/queryUserList.do    ${data}    
${res_json}    To Json    ${res.content}            
log    ${res_json}            

7、关键字 Fetch From Left 与 Fetch From Right 的用法

  • 首先在套件中导入 String 库,该两个关键字来自于 String 库
  • Fetch From Left 用于截取标记的左边的字符串
  • Fetch From Right 用于截取标记的右边的字符串
${str}    Set Variable    深圳宝安多测师    
${text_left}    Fetch From Left    ${str}    宝安    # 截取宝安左边的字符串内容
log    ${text_left}        
${text_right}    Fetch From Right    ${str}    宝安    # 截取宝安右边的字符串内容
log    ${text_right}        

# 结果如下:
20200827 19:59:07.143 :  INFO : ${str} = 深圳宝安多测师
20200827 19:59:07.143 :  INFO : ${text_left} = 深圳
20200827 19:59:07.144 :  INFO : 深圳
20200827 19:59:07.144 :  INFO : ${text_right} = 多测师
20200827 19:59:07.145 :  INFO : 多测师

  

作者:多测师高级讲师_郑sir
微信:ZhengYing8887
出处:https://www.cnblogs.com/ZhengYing0813/
备注:本文版权归作者所有,欢迎转载和添加作者微信探讨技术,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/ZhengYing0813/p/13572224.html