從零開始Python | 全面了解帶Python的機器人框架(從零開始學python網絡爬蟲)

      網友投稿 993 2025-04-02

      Python編程語言具有一個機器人框架,該框架可以使用外部庫(例如selenium)進行Web測試。在本文中,我們將了解測試案例以及與python中的機器人框架相關的各種其他術語,以及使用Selenium庫進行Web測試的用例。在此博客中討論了以下主題:


      What is the Robot Framework In Python?

      Robot Framework Architecture

      Installation

      Standard Libraries

      Built-in Tools

      Test Cases

      Workflow Tests

      Higher-Level Tests

      Data-Driven Tests

      Keywords

      Library Keywords

      User Keywords

      Variables

      Defining Variables

      Using Variables

      Organizing Test Cases

      RobotFramework-Selenium Library

      Installation

      Browser Drivers

      Use Case – Web Testing With Robot Framework And SeleniumLibrary

      什么是機器人框架?

      機器人框架是用于驗收測試,驗收測試驅動的開發和機器人流程自動化的通用開源自動化框架。它使用關鍵字驅動的測試技術方法。可以通過可以由Java或Python實現的測試庫來擴展該功能。

      驗收測試

      這是一種測試技術,其中測試了系統的功能。驗收測試的目的是根據業務需求評估系統的功能。

      驗收測試驅動開發

      ATDD或驗收測試驅動的開發是一種基于商業客戶,開發人員和測試人員之間的溝通的開發方法。他們協調工作,并在實施功能之前進行驗收測試。

      機器人過程自動化

      RPA或機器人過程自動化是通過使用機器學習和AI功能的軟件在共振中方便地減少人類精力的過程。RPA處理高級別的可重復任務。

      機器人框架架構

      該機器人框架與平臺無關,盡管該核心框架是使用python實現的,但它也可以在JPython(JVM)和IronPython(.NET)上運行。

      當流程開始時,測試數據采用易于編輯的格式,框架將處理測試數據并生成日志和報告。交互由庫處理,這些庫可以使用其他測試工具作為驅動程序來測試目標。

      安裝

      在python上安裝機器人框架的推薦方法是使用pip。您可以使用以下命令來安裝框架。

      pip install robotframework

      驗證安裝

      成功安裝后,您應該可以使用–version選項查看解釋器和機器人框架版本。

      robot --version rebot --version

      標準庫

      機器人框架隨附了以下測試庫。

      BuiiltIn

      Collections

      DateTime

      Dialogs

      OperatingSystem

      Process

      Remote

      Screenshot

      String

      Telnet

      XML

      內建工具

      除了核心測試執行引擎之外,機器人框架還內置了一些支持工具。python的機器人框架中包含以下內置工具。

      Rebot

      Libdoc

      Testdoc

      Tidy

      機器人框架測試數據在下面列出的不同部分中定義。

      Settings

      Variables

      Test Cases

      Tasks

      Keywords

      Comments

      測試用例

      可以在以下測試中對測試用例進行分類。

      工作流程測試

      更高級別的測試

      數據驅動的測試

      工作流程測試

      機器人框架測試用例通常以表格語法編寫。讓我們看一個例子來理解這一點。

      用戶可以創建一個帳戶并登錄

      用戶無法使用錯誤的密碼登錄

      *** Test Cases *** User can create an account and log in Create Valid User python P4ssw0rd Attempt to Login with Credentials python P4ssw0rd Status Should Be Logged In User cannot log in with bad password Create Valid User pytHon P4ssw0rd Attempt to Login with Credentials pytHon wrong Status Should Be Access Denied

      python中的機器人框架遵循用簡單的英語語言而非自動測試用例編寫的測試用例。它遵循關鍵字驅動的方法,在行為和期望方面與自然語言產生共鳴。

      用關鍵字和可能的參數構造測試用例。

      高級測試

      機器人框架中的測試用例只能使用高級關鍵字構建,而無需使用位置參數。讓我們看下面的例子來理解高級測試。

      *** Test Cases *** User can change password Given a user has a valid account When she changes her password Then she can log in with the new password And she cannot use the old password anymore

      數據驅動測試

      數據驅動的測試可在不重復工作流程的情況下更改測試數據。機械手框架中的[Template]設置將測試用例設置為數據驅動的測試。

      *** Test Cases *** Invalid password [Template] Creating user with invalid password should fail abCD5 ${PWD INVALID LENGTH} abCD56789 ${PWD INVALID LENGTH} 123DEFG ${PWD INVALID CONTENT} abcd56789 ${PWD INVALID CONTENT} abCdEfGh ${PWD INVALID CONTENT} abCD56+ ${PWD INVALID CONTENT}

      關鍵字詞

      機器人框架中的測試用例是用來自兩個來源的關鍵字創建的。

      圖書館關鍵詞

      用戶關鍵詞

      圖書館關鍵詞

      所有最低級別的關鍵字都在標準庫中定義,可以使用諸如Python,Java等編程語言來實現。

      機器人框架附帶了測試庫,可以將其分為標準庫,外部庫和自定義庫。標準庫位于核心框架中,例如內置,屏幕截圖,操作系統等。外部庫是單獨安裝的,例如用于Web測試的硒庫。

      要使用庫中的關鍵字,必須導入庫設置。讓我們看一個例子來理解這一點。

      *** Settings *** Library OperatingSystem Library lib/LoginLibrary.py

      用戶關鍵詞

      機器人框架的強大功能之一是,我們可以使用其他關鍵字創建自定義的高級關鍵字。讓我們看一個例子來了解它是如何工作的。

      *** Keywords *** Clear login database Remove file ${DATABASE FILE} Create valid user [Arguments] ${username} ${password} Create user ${username} ${password} Status should be SUCCESS Creating user with invalid password should fail [Arguments] ${password} ${error} Create user example ${password} Status should be Creating user failed: ${error} Login [Arguments] ${username} ${password} Attempt to login with credentials ${username} ${password} Status should be Logged In # Keywords below used by higher level tests. Notice how given/when/then/and # prefixes can be dropped. And this is a comment. A user has a valid account Create valid user ${USERNAME} ${PASSWORD} She changes her password Change password ${USERNAME} ${PASSWORD} ${NEW PASSWORD} Status should be SUCCESS She can log in with the new password Login ${USERNAME} ${NEW PASSWORD} She cannot use the old password anymore Attempt to login with credentials ${USERNAME} ${PASSWORD} Status should be Access Denied

      用戶定義的關鍵字也可以包括其他用戶定義的關鍵字或庫關鍵字提供的操作。

      變數

      在機器人框架中,變量是任何測試用例的重要組成部分。最好使用變量來定義任何易受可變性或變更影響的測試用例數據。

      讓我們看一下如何在測試用例中定義變量。

      定義變量

      *** Variables *** ${USERNAME} janedoe ${PASSWORD} J4n3D0e ${NEW PASSWORD} e0D3n4J ${DATABASE FILE} ${TEMPDIR}${/}robotframework-quickstart-db.txt ${PWD INVALID LENGTH} Password must be 7-12 characters long ${PWD INVALID CONTENT} Password must be a combination of lowercase and uppercase letters and numbers

      除了用戶定義的變量外,機器人框架中還存在內置變量,例如我們在上面的示例中也使用過的$ {TEMPDIR}和$ {/}。

      使用變量

      我們可以在測試用例中的任何位置使用變量,它們最常用作關鍵字中的參數。讓我們看一個例子來理解這一點。

      *** Test Cases *** User status is stored in database [Tags] variables database Create Valid User ${USERNAME} ${PASSWORD} Database Should Contain ${USERNAME} ${PASSWORD} Inactive Login ${USERNAME} ${PASSWORD} Database Should Contain ${USERNAME} ${PASSWORD} Active *** Keywords *** Database Should Contain [Arguments] ${username} ${password} ${status} ${database} = Get File ${DATABASE FILE} Should Contain ${database} ${username}t${password}t${status}n

      現在,我們知道了如何使用關鍵字和變量來創建測試用例。讓我們嘗試了解我們將如何組織測試用例。

      組織測試用例

      機器人測試用例是在測試用例文件中創建的,但是我們可以將它們組織到創建測試套件層次結構的目錄中。

      測試用例的集合稱為測試套件。每個包含測試用例的文件也構成一個測試套件。可以使用目錄在層次結構中組織測試用例,所有這些目錄都創建了高級測試套件,這些套件從目錄名稱中獲取名稱。

      設置和拆卸

      如果要在測試之前或之后執行測試中的特定關鍵字,則可以使用設置表中的“測試設置”和“測試拆解”設置。您還可以在測試套件之前或之后使用“ Suite設置”和“ Suite拆解”來執行關鍵字。

      您也可以像[模板]一樣在測試用例中創建自定義的[設置]和[拆卸]。讓我們看一個例子來理解這一點。

      *** Settings *** Suite Setup Clear Login Database Test Teardown Clear Login Database

      使用標簽

      機器人框架允許標簽為測試案例提供免費的元數據。可以使用“強制標簽”和“默認標簽”在文件中設置標簽。

      就像[Template]一樣,可以使用[Tags]為單個測試用例提供標簽。讓我們舉一個例子來了解我們如何使用標簽。

      *** Settings *** Force Tags quickstart Default Tags example smoke

      執行后,報告將具有與測試用例相關聯的標簽以及基于標簽的統計信息。

      機器人框架-硒庫

      機器人框架中的硒庫是一個Web測試庫,在內部使用硒工具。Selenium庫可以在python 2.7、3.4和更高版本中正常工作。除了標準的python解釋器外,它還可以與Pypy和JPython一起使用,但IronPython除外。

      安裝

      要安裝硒庫,我們可以使用python中的pip遵循典型方法。使用以下命令在python中安裝seleniumlibrary。

      pip install robotframework-seleniumlibrary

      瀏覽器驅動程序

      安裝完成后,您仍然需要為要在測試中使用的操作系統和瀏覽器安裝相關的驅動程序。通用方法是安裝瀏覽器驅動程序(例如Chromedriver for chrome),但也可以使用稱為Webdrivermanager的工具。

      它將在需要時找到最新版本,它將在正確的位置下載所有鏈接/文件。它支持所有主要操作系統,并支持瀏覽器(例如chrome,opera等)的下載。

      您可以使用以下命令來安裝WebdriverManager

      pip install webdrivermanager webdrivermanager firefox chrome --linkpath /usr/local/bin

      如何使用硒庫

      要使用硒庫,必須像其他任何庫一樣使用“庫”設置將其導入。建議使用robot框架高級關鍵字編寫內部使用硒低級關鍵字的測試用例。

      這是一個簡單的示例,展示了如何在測試案例中使用硒庫。

      *** Settings *** Documentation Simple example using SeleniumLibrary. Library SeleniumLibrary *** Variables *** ${LOGIN URL} http://localhost:7272 ${BROWSER} Chrome *** Test Cases *** Valid Login Open Browser To Login Page Input Username demo Input Password mode Submit Credentials Welcome Page Should Be Open [Teardown] Close Browser *** Keywords *** Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Title Should Be Login Page Input Username [Arguments] ${username} Input Text username_field ${username} Input Password [Arguments] ${password} Input Text password_field ${password} Submit Credentials Click Button login_button Welcome Page Should Be Open Title Should Be Welcome Page

      用例–使用機器人框架和Selenium庫進行Web測試

      在此示例中,我們將創建以下目錄。

      應用程序–它是一個簡單的登錄應用程序,具有登錄頁面,歡迎頁面和錯誤頁面。

      測試–將包含所有測試用例。

      任務-這將有任務。

      應用

      的HTML

      index.html

      Login Page

      welcome.html

      Welcome Page

      Welcome Page

      Login succeeded. Now you can logout.

      error.html

      Error Page

      Error Page

      Login failed. Invalid user name and/or password.

      demo.css

      body { font-family: sans-serif; color: black; background: #DDDDDD; } #container { width: 30em; height: 15em; margin: 5em auto; background: white; border: 1px solid gray; padding: 0.5em 2em; }

      server.py

      from __future__ import print_function from os import chdir from os.path import abspath, dirname, join try: from SocketServer import ThreadingMixIn from BaseHTTPServer import HTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler except ImportError: from socketserver import ThreadingMixIn from http.server import SimpleHTTPRequestHandler, HTTPServer ROOT = join(dirname(abspath(__file__)), 'html') PORT = 7272 class DemoServer(ThreadingMixIn, HTTPServer): allow_reuse_address = True def __init__(self, port=PORT): HTTPServer.__init__(self, ('localhost', int(port)), SimpleHTTPRequestHandler) def serve(self, directory=ROOT): chdir(directory) print('Demo server starting on port %d.' % self.server_address[1]) try: server.serve_forever() except KeyboardInterrupt: server.server_close() print('Demo server stopped.') if __name__ == '__main__': import sys try: server = DemoServer(*sys.argv[1:]) except (TypeError, ValueError): print(__doc__) else: server.serve()

      測驗

      valid_login.robot

      *** Settings *** Documentation A test suite with a single test for valid login. ... ... This test has a workflow that is created using keywords in ... the imported resource file. Resource resource.robot *** Test Cases *** Valid Login Open Browser To Login Page Input Username demo Input Password mode Submit Credentials Welcome Page Should Be Open [Teardown] Close Browser

      invalid_login.robot

      *** Settings *** Documentation A test suite containing tests related to invalid login. ... ... These tests are data-driven by their nature. They use a single ... keyword, specified with Test Template setting, that is called ... with different arguments to cover different scenarios. ... ... This suite also demonstrates using setups and teardowns in ... different levels. Suite Setup Open Browser To Login Page Suite Teardown Close Browser Test Setup Go To Login Page Test Template Login With Invalid Credentials Should Fail Resource resource.robot *** Test Cases *** USER NAME PASSWORD Invalid Username invalid ${VALID PASSWORD} Invalid Password ${VALID USER} invalid Invalid Username And Password invalid whatever Empty Username ${EMPTY} ${VALID PASSWORD} Empty Password ${VALID USER} ${EMPTY} Empty Username And Password ${EMPTY} ${EMPTY} *** Keywords *** Login With Invalid Credentials Should Fail [Arguments] ${username} ${password} Input Username ${username} Input Password ${password} Submit Credentials Login Should Have Failed Login Should Have Failed Location Should Be ${ERROR URL} Title Should Be Error Page

      資源機器人

      *** Settings *** Documentation A resource file with reusable keywords and variables. ... ... The system specific keywords created here form our own ... domain specific language. They utilize keywords provided ... by the imported SeleniumLibrary. Library SeleniumLibrary *** Variables *** ${SERVER} localhost:7272 ${BROWSER} Firefox ${DELAY} 0 ${VALID USER} demo ${VALID PASSWORD} mode ${LOGIN URL} http://${SERVER}/ ${WELCOME URL} http://${SERVER}/welcome.html ${ERROR URL} http://${SERVER}/error.html *** Keywords *** Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Maximize Browser Window Set Selenium Speed ${DELAY} Login Page Should Be Open Login Page Should Be Open Title Should Be Login Page Go To Login Page Go To ${LOGIN URL} Login Page Should Be Open Input Username [Arguments] ${username} Input Text username_field ${username} Input Password [Arguments] ${password} Input Text password_field ${password} Submit Credentials Click Button login_button Welcome Page Should Be Open Location Should Be ${WELCOME URL} Title Should Be Welcome Page

      gherkin_login.robot

      *** Settings *** Documentation A test suite with a single Gherkin style test. ... ... This test is functionally identical to the example in ... valid_login.robot file. Resource resource.robot Test Teardown Close Browser *** Test Cases *** Valid Login Given browser is opened to login page When user "demo" logs in with password "mode" Then welcome page should be open *** Keywords *** Browser is opened to login page Open browser to login page User "${username}" logs in with password "${password}" Input username ${username} Input password ${password} Submit credentials

      tasks.py

      from pathlib import Path import shutil from docutils.core import publish_cmdline from invoke import task from rellu.tasks import clean assert Path.cwd() == Path(__file__).parent @task def project_docs(ctx): """Generate project documentation. These docs are visible at

      要運行我們的應用程序,只需運行server.py文件,登錄頁面將在https:///:localhost:7272中打開。

      演示運行時,您可以使用以下命令執行測試

      robot tests

      運行測試后,您將獲得報告和HTML格式的日志文件。

      report.html

      log.html

      這使我們到了本文的結尾,在這里我們了解了如何在seleniumlibrary中使用python中的機器人框架來在登錄頁面上執行Web測試。我希望您對本教程中與您共享的所有內容一清二楚。

      Python 機器人

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel中設置表格數據排序的操作方法(excel表格數據排序怎么操作步驟)
      下一篇:電子表格乘法公式(電子表格乘法公式是什么)
      相關文章
      亚洲成在人天堂在线| 久久久久久a亚洲欧洲aⅴ| 亚洲av永久无码精品网站| 亚洲人成无码久久电影网站| 亚洲Av无码乱码在线znlu| 亚洲av无码偷拍在线观看| 亚洲精品无码久久久久APP| 亚洲欧洲专线一区| 亚洲国产午夜精品理论片在线播放| 亚洲黄色激情视频| 国产亚洲精品影视在线| 亚洲日韩看片无码电影| 亚洲国产精品美女久久久久| 亚洲av乱码中文一区二区三区| 亚洲AV无码国产剧情| 国产精品亚洲五月天高清| 亚洲Av无码乱码在线观看性色 | 亚洲第一se情网站| 国产亚洲精品2021自在线| 亚洲 自拍 另类小说综合图区| 亚洲人成无码www久久久| 亚洲一区二区三区香蕉| 亚洲va久久久噜噜噜久久 | 婷婷亚洲久悠悠色悠在线播放| 亚洲综合激情另类小说区| 亚洲另类小说图片| 亚洲 暴爽 AV人人爽日日碰| 亚洲色中文字幕在线播放| 亚洲av无码日韩av无码网站冲| 亚洲日本韩国在线| 久久久久久a亚洲欧洲aⅴ| 午夜影视日本亚洲欧洲精品一区| 久久久久亚洲AV片无码下载蜜桃| 亚洲国产亚洲片在线观看播放| 国产精品久久亚洲不卡动漫| 亚洲爆乳无码专区www| 亚洲国产人成中文幕一级二级| 亚洲男人的天堂www| 亚洲综合在线视频| 亚洲人成小说网站色| 最新亚洲人成网站在线观看|