비디오 자습서 포털 : 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}
执行结果如下