zoukankan      html  css  js  c++  java
  • 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/
    备注:本文版权归作者所有,欢迎转载和添加作者微信探讨技术,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    android gridview画分割线,如图:
    Devexpress 之gridControl
    Devexpress 之gridControl双击行事件
    Devexpress之popupMenu
    Devexpress之dxErrorProvider
    DevExpress之lookupedit
    Devexpress 汉化 代码 zt
    Devexpress之DateEdit学习,可选择日期时 zt
    Devexpress之barManager
    devpress 很好的中文论坛
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/13572224.html
Copyright © 2011-2022 走看看