中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

robot接口自動化用例編寫

發布時間:2020-07-29 12:25:11 來源:網絡 閱讀:2605 作者:襖淋披殼_sh 欄目:軟件技術

如何手寫robot自動化用例,網上雖然有一大堆教程,但都是關于ride的,對于如何從腳本角度來寫,一直零零散散,語焉不詳,本文以互聯網最常見的API接口自動化為例,給出方向性指引,文字不多,足夠你理解,想要深入,請依循文中的文字,再去百度,慢慢體會,逐步精深。

用例編寫前提:已經部署好了robot/python環境

第一個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     你好, 我的關鍵字
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻乌县| 子长县| 渑池县| 晋江市| 四平市| 黄龙县| 太和县| 资源县| 介休市| 晋江市| 平远县| 天镇县| 开封市| 邹城市| 肥乡县| 都江堰市| 安平县| 临海市| 镇康县| 马边| 新巴尔虎左旗| 泽库县| 苍南县| 固阳县| 泰安市| 民和| 微博| 南木林县| 湖南省| 琼海市| 霍山县| 安康市| 华安县| 天柱县| 浦江县| 镇沅| 河池市| 巴里| 西盟| 微山县| 丰宁|