robotframework自動化系列:新增流程


剛接手項目的時候,要求所有流程在上線之前必須確保正向操作是正確的;這個時候又有新的模塊需要測試,所以引入自動化測試是非常有必要的!通過對比,嘗試使用RF進行自動化的回歸測試。
測試中最常見的操作就是增刪改查,所以對於自動化最簡單的就是數據模塊的增刪改查人手進行操作。
這里先看一下web測試中的新增用例的測試點,如圖所示
添加/修改測試點
對於一個新增操作,我們這里以賬號新增為例進行操作展示,賬號新增頁面元素顯示如圖所示
賬號新增頁面展示
先說明一下,各個元素的定位方法:

輸入用戶名
[Arguments]    ${username}
Wait Until Element Is Visible    id=username
clear element text    id=username
input text    id=username    ${username}    #賬號管理中的用戶名和密碼共用

輸入密碼
[Arguments]    ${password}
Wait Until Element Is Visible    id=password
input text    id=password    ${password}    #賬號管理中的用戶名和密碼共用

再次輸入密碼
input text	id = ppassword	${ppassword}	

手機號碼
[Arguments]    ${phone}
clear element text    id = phone
sleep    5
input text    id = phone    ${phone}    #用戶信息共用此定位,賬號信息中也共用

郵箱
[Arguments]    ${email}
clear element text    id=email
input text    id=email    ${email}

選擇用戶組
click element    xpath = .//*[@id='unTbl']/tbody/tr[1]/td[1]/i

用戶所屬機構
[Arguments]    ${organization_id}
Comment    select from list    id = organization_id    機構養老一    #賬號中的所屬機構共用此定位
#隨機選擇所屬機構
${count}    get matching xpath count    .//*[@id='organization_id']/option
${sale_pattern_temp}    evaluate    random.randint(0,${count}-1)    random
${sale_pattern}    Convert To String    ${sale_pattern_temp}
select from list by index    organization_id    ${sale_pattern}

數據權限
#賬號新增中的全選按鈕
click element    xpath = .//*[@id='orgs']/li/input

賬號保存
click button    xpath = html/body/div[1]/div/div[2]/form/div[10]/div/button[1]
Comment    click button    xpath = html/body/div[1]/div/div[2]/form/div[10]/div/button[1]
sleep    10

賬號名稱檢查
${account}    get text    xpath=.//*[@id='tb_guardian']/tbody/tr[1]/td[2]
[Return]    ${account}

而新增賬號頁面中元素的定位已經確定,接下來就是用例步驟:

用例目的:新建賬號-成功

步驟:

  1. 使用管理賬號登錄系統
  2. 打開新建賬號的頁面,此處需要使用select window來切換tab到新建賬號的頁面
  3. 輸入符合的用戶名、密碼、確認密碼、手機號碼、郵箱、選擇用戶組、用戶所屬機構和全部數據權限
  4. 點擊保存

斷言:

  1. 當前頁面的url是否是query的頁面
  2. 當前顯示的首行賬號名稱是否和新增的賬號名稱一致

接下來就是使用RF進行用例的編寫~(≧▽≦)/~
根據用例步驟一步步來編寫用例,這里將登錄和關閉瀏覽器2個操作封裝之后,分別在setup和teardown中進行設置了,如圖所示

用例前置操作

賬號添加用例代碼展示如圖

[Documentation]    用例目的:新建賬號-成功
...    步驟:
...    1.打開新建賬號的頁面,此處需要使用select window來切換tab到新建賬號的頁面
...    2.輸入符合的用戶名、密碼、確認密碼、手機號碼、郵箱、選擇用戶組、用戶所屬機構和全部數據權限
...    3.點擊保存
...    斷言
...    1.當前頁面的url是否是query的頁面
...    2.當前顯示的首行賬號名稱是否和新增的賬號名稱一致
[Setup]    login
打開頁面    ${GuardianEdit}
Take Screenshot    guardian
賬號跳轉
Take Screenshot    guardian
${username}=    gen chars    10
輸入用戶名    ${username}
輸入密碼    123456
再次輸入密碼    123456
${phone}    Evaluate    random.choice(['139','188','185','136','158','151'])+"".join(random.choice("0123456789") for i in range(8))    random
手機號碼    ${phone}
郵箱    5645645645656@qq.com
選擇用戶組
用戶所屬機構    機構養老一
數據權限
Take Screenshot    guardian
賬號保存
sleep    10
#確認顯示信息
角色確認
sleep    10
Take Screenshot    guardian
Comment    ${mes}=    Confirm Action
Comment    sleep    10
Comment    Should Be Equal As Strings    ${mes}    保存成功!
Comment    確認保存
Comment    ${Auser}    get text    xpath=.//*[@id='tb_guardian']/tbody/tr[1]/td[2]    #后期po
#斷言當前頁面的url
Location Should Be    ${GuardianQuery}
${Auser}    賬號名稱檢查
Should Match    ${Auser}    ${username}    
log    ${username}
log    ${Auser}
[Teardown]    close

代碼截圖如圖所示

新增賬號代碼截圖

這樣新增賬號成功用例已經完成。而根據web測試點,其他用例設計如圖所示

賬號用例縮略圖

這里整個結構使用了RobotFramework的分層思想:

第一層即用例層,如上圖所示

第二層是頁面元素封裝,如圖所示

賬號頁面元素封裝

第三層是元素值的變量集合,如圖所示

變量集合

到此,賬號新增模塊的整個用例設計已經完成(^o^)/~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM