로봇 프레임 워크 노트 (소개 + 기본 키워드)

비디오 자습서 포털 : https://ke.qq.com/course/417461?taid=3602880561307317

로봇 프레임 워크 라이브러리

내장이 : 일반적으로 요구되는 키워드의 공통 제공
생성, 수정 및 검증 문자열 라이브러리 : 문자열
스크린 샷 : 캡처 데스크탑 키워드 스크린 샷 제공
XML을 : 생성, 수정, 검증 XML 파일 라이브러리
날짜 시간 : 변환 라이브러리의 날짜 및 시간
... ...

웹 자동화 된 테스트 : SeleniumLibrary, Selenium2Library, 자바에 대한 Selenium2Library , Watir과 로봇 등등.
윈도우 GUI 테스트 : AutoltLibrary.
모바일 테스트 : 안드로이드 라이브러리, 아이폰 OS 라이브러리, 등등 AppiumLibrary합니다.
데이터베이스 테스트 : 데이터베이스 라이브러리 (자바), 데이터베이스 라이브러리 (파이썬), MongoDB를 라이브러리 등등합니다.
파일 비교 테스트 : DIFF 도서관.
HTTP 테스트 : HTTP를 라이브러리 (livetest), HTTP를 라이브러리 (요청) 등등
......

로봇 프레임 워크 라이브러리 단위 테스트 프레임 워크를 비교

유사점 :
설치 /를의 tearDown
테스트 스위트 (테스트 케이스의 집합을 실행 모음)을 제공하는
테스트 실행을
HTML 테스트 결과를 생성하기 위해 (주요 확장 유닛 테스트 프레임 워크를 생성하는 HTML)

차이 :
구문
로봇 프레임 워크 자체의 문법, 파이썬 구문을 사용하여 유닛 테스트.
라이브러리 지원
라이브러리를 파이썬을 지원하는 유닛 테스트, 특정 라이브러리를 지원하는 로봇 프레임 워크를.

@ 스크립트 대비, 로봇 프레임 워크

*** Settings***
Library    Selenium2Library


*** Test Cases ***
testcase
    open browser    https://www.baidu.com    chrome
    input text    id=kw    robot framework
    click button    id=su
    close browser

   설명 : 처음 네 자리 후 라인 테스트 케이스 네 개의 문

@ 스크립트 대비, 유닛 테스트

from selenium import webdriver
import unittest

class Mytest(unittest.Testcase):

    def testcase(self):
        dr= webdriver.Chrome()
        dr.find_element_by_id("kw").send_keys("robot framework")
        dr.find_element_by_id("su").click()
        dr.close()

if __name__ == '__main__':
    unittest.main()

설명 : unittest.Testcase로부터 상속 된 객체 정의, 테스트에 테스트 케이스로 시작 -> 데프 테스트 케이스 (자체)

로봇 프레임 워크 준비를

Python2.x / Python3.x / (더 나은 python2 지원)
로봇 프레임 워크
wxPython2.8.12.1 (는 Win32)를 (선택 사항)
로봇 프레임 워크 - 라이드 (옵션, 공식 표준 편집기입니다)

파이썬 -> https://www.python.org
로봇 프레임 워크 -> https://github.com/robotframework/robotframework
wxPython에 -> HTTP : // 소스 포지. 그물 / 프로젝트 / wxPython을 / 파일 / wxPython을 / 2.8.12.1 /
로봇 framwork-타고 -> https://github.com/robotframework/RIDE

로봇 프레임 워크 설치

[환경] + Win10 Python3.7 (버전에만 설치)

C:\Users>pip show robotframework
WARNING: Package(s) not found: robotframework
C:\Users>pip install robotframework
…(省略)…
C:\Users\Learnrf>pip show robotframework
Name: robotframework
Version: 3.1.2
Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
Home-page: http://robotframework.org
Author: Pekka Klärck
Author-email: [email protected]
License: Apache License 2.0
Location: c:\users\learnrf\appdata\local\programs\python\python37\lib\site-packages
Requires:
Required-by:

C:\Users\Learnrf>

읽고 파일을 편집 rf_demo.robot은 같은 다음
*** *** 설정

*** 테스트 케이스 ***
테스트 케이스
   로그 로봇 framwork

실행 pybot의 rf_demo.robot, "pybot 내부 명령 아니다"제안

[해결]을 파이썬 \ Python37 \ 스크립트의 경로를 찾기 위해 파일을 편집 pybot.bat은 다음
@echo OFF
파이썬 -m robot.run %는 *

Pybot의 rf_demo.robot 다시 다음과 같은 결과를 명령을 실행

세 가지 문서의 출력,

먼 길을 report.html ->

> - 먼 길을 log.html

먼 길을 output.xml ->

로봇 프레임 워크 편집기

나는 RIDE를 사용하지 않도록 Python3를 사용하기 때문에, 당신은 해당 플러그인에 대한 링크를 열고, 일부 편집기 플러그인 도구 편집기에서 선택한 오픈 https://robotframework.org/을 다운로드 할 수 있습니다

(1) 예를 들어 노트 패드 ++

당신은 자식 명령 복제를 사용하거나 여기 다운로드, 지방 지역에 다운로드 할 수 있습니다.

작동은 다음 README.md 따라 따르
언어 -> ...- 형식 정의 언어> 가져 오기 -> 성공적인 도입을 제안, 랭 robot.xml를 선택합니다.

그런 다음에서 "언어"에서 찾을 수 있습니다

참고 : 구문 강조는 확장 ".robot"파일에만 적합

(2)再如sublime
参考视频教程https://ke.qq.com/course/417461?taid=3602889151241909(后半节)
* 下载&安装
* 打开robot framework 项目与代码着色设置
   Preferences->Browse Packages...
   View->Syntax->Robot Framework syntax highlighting.)
* 运行

ROBOT FRAMEWORK基础关键字

* robot framework的基础关键字封装 Builtin库中,它里面包含了最基础的一些关键字。
例如:打印、定义变量、定义数组、时间、分支语句、循环语句、调用 Python模块等。
*其它基础库: Dialogs、Collections、Operating System、Remote、ScreenshotString、Telnet、XML、 Process、Date Time

@ Builtin

-定义变量
-定义列表
-连接字符串
-时间关键字
-分支语句关键字
-循环语句关键字
-使用python模块

(1)定义变量

编辑key_variable.robot,内容如下

执行结果如下

C:\rf>pybot key_variable.robot
==============================================================================
Key Variable
==============================================================================
variable                                                              | PASS |
------------------------------------------------------------------------------
Key Variable                                                          | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  C:\rf\output.xml
Log:     C:\rf\log.html
Report:  C:\rf\report.html

C:\rf>

说明:

1.首行的 *** Test Cases *** 不可少,否则执行会报错

C:\rf>pybot key_variable.robot
[ ERROR ] Parsing 'key_variable.robot' failed: File has no tests or tasks.

Try --help for usage information.

C:\rf>

2.第二行是用例名称

3.第三行给变量a赋值,需要使用${}代表变量,每列以4个空格分隔

4.日志记录变量a的值,打开输出文件log.html,找到记录的log

(2)定义列表

编辑key_list.robot,内容如下

log.html中关键字内容如下

(3)连接字符串

编辑key_catenate.robot,内容如下

log.html中关键字内容如下

(4)时间关键字

编辑key_time.robot,内容如下

说明:

1.第3行和第6行的关键字get time 可以获取当前时间

2.第5行的sleep 5 会等5秒

log.html中关键字内容如下,可以瞅瞅时间戳~

(5)分支语句关键字

编辑key_if.robot,内容如下

说明:4-7行是分支语句,第5-7行第一列是三个句点(...)不能少

log.html中关键字内容如下

(6)循环语句关键字

编辑key_for.robot,内容如下

说明:

1.循环10次,注意FOR前要有冒号

2.第一列为“\”(如果用python2 + RIDE,第一列是留空)

log.html中关键字内容如下

(7)使用python模块
import random
number=random.randint(1000,9999)
print(number)

上述python语句对应如下robot framework语句

random_py
    ${d}    Evaluate    random.randint(1000,9999)   random
    log    ${d}

编辑pymod.robot,内容如下

说明:

1.需要使用关键字Evaluate

2.第3行和第7行的第4列是导入的模块名,等价于python语句 import <模块名>

执行结果如下

C:\rf>pybot pymod.robot
==============================================================================
Pymod
==============================================================================
random_py                                                             | PASS |
------------------------------------------------------------------------------
time_py                                                               | PASS |
------------------------------------------------------------------------------
Pymod                                                                 | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
==============================================================================
Output:  C:\rf\output.xml
Log:     C:\rf\log.html
Report:  C:\rf\report.html

C:\rf>

log.html中测试用例内容如下,前者生成范围内随机数,后者获取当前时间

 

将上述用例写到一个文件base_key.robot 中

*** Test Cases ***
variable
    ${a}    Set variable    hello world
    log    ${a}

list
    ${abc}    Create List   a   b   c
    log    ${abc}

catenate
    ${hi}   Catenate    hello   world
    log    ${hi}

time
    ${t}    get time
    log    ${t}
    sleep   5
    ${t}    get time
    log    ${t}

if
    ${a}    Set variable    59
    run keyword if    ${a}>=90    log    优秀
    ...    ELSE IF    ${a}>=70    log    良好
    ...    ELSE IF    ${a}>=60    log    及格
    ...    ELSE    log    不及格

for
    : FOR   ${i}    IN RANGE    10
    \   log    ${i}
    
random_py
    ${d}    Evaluate    random.randint(1000,9999)   random
    log    ${d}

time_py
    ${t}    Evaluate    time.ctime()    time
    log    ${t}

执行结果如下

 

发布了89 篇原创文章 · 获赞 1 · 访问量 4791

추천

출처blog.csdn.net/wy_hhxx/article/details/103996229