自动化测试框架Robot Framework
自动化测试示例
目录
- 1、第三方库
- 2、示例:Web
- 3、示例:App
- 4、示例:接口
1、第三方库
1、安装SeleniumLibrary
SeleniumLibrary是Robot Framework的Web测试库,内部使用Selenium工具。
命令行输入安装命令:
pip install --upgrade robotframework-seleniumlibrary
或者,先下载后安装:
https://pypi.org/project/robotframework-seleniumlibrary/#files
robotframework-seleniumlibrary版本5.1.3
2、浏览器驱动
(1)chromedriver(Chrome)
https://chromedriver.storage.googleapis.com/index.html
(2)geckodriver(Firefox)
https://github.com/mozilla/geckodriver/releases
(3)Microsoft Edge Driver(Edge)
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
注意:Driver版本需要适配测试使用的浏览器版本。
下载后将驱动文件放在指定目录里:
Windows:
Python的安装根目录下,如D:Python37目录下(chromedriver驱动)。
MacOS:
将驱动放到/usr/local/bin目录下(chromedriver驱动)即可。
3、安装AppiumLibrary
AppiumLibrary是Robot Framework用于Android和iOS测试的库,内部使用 Appium工具。
命令行输入安装命令:
pip3 install --upgrade robotframework-appiumlibrary
或者,先下载后安装:
https://pypi.org/project/robotframework-appiumlibrary/#files
robotframework-appiumlibrary版本1.6.1
4、安装RequestsLibrary
RequestsLibrary是Robot Framework的接口测试库,内部使用Requests工具。
命令行输入安装命令:
pip3 install robotframework-requests
或者,先下载后安装:
https://pypi.org/project/robotframework-requests/#files
robotframework-requests版本0.9.1
5、其他第三方库
如果需要额外的第三方库的支持,请参考SeleniumLibrary的方式下载并安装相应库。
其他的第三方库下载地址:
http://robotframework.org/#libraries
2、示例:Web
1、创建项目
菜单栏File-》New Project
Name输入项目名称,Type选择Directory,Format选择ROBOT,点击OK。
2、创建套件
在新增的项目上右键,选择New Suite
Name输入套件名称,Type选择File,Format选择ROBOT,点击OK。
3、创建测试用例
在新增的套件上右键,选择New Test Case
Name输入测试用例名称,点击OK。
4、导入第三方库
导入SeleniumLibrary库(基于Web自动化使用):
在套件的Edit标签页,点击“Library”按钮,弹出输入框,Name输入:SeleniumLibrary,点击OK。
导入成功
5、编写测试用例
官方的SeleniumLibrary库API使用方法:
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#library-documentation-top
例如:打开浏览器的方法Open Browser
按照方法的使用,进行测试用例的编写。
更多方法的使用,请参考相关API方法。按照上面的方法,创建百度搜索测试用例,如下:
6、运行测试用例
勾选当前需要运行的测试用例,点击工具栏的运行按钮。如果只运行单个用例的话,也可以切换到用例的Run标签页,点击“Start”按钮。
运行结果:
运行信息显示会生成三个文件:output.xml、log.html、report.html。
我们重点查看report.html和log.html。report.html更关注脚本的执行结果的展示,log.html更关注脚本的执行过程的记录。
可点击“Report”、“Log”按钮进行查看。
点击“Report”按钮,浏览器自动打开html测试报告。
点击“Log”按钮,浏览器自动打开html测试日志。
3、示例:App
App自动化测试用例编写与Web自动化测试用例编写步骤一致(创建项目、创建套件、导入第三方库、创建并编写测试用例等)。
官方的AppiumLibrary库API使用方法:
http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html
示例App下载地址(以Android为例:ApiDemos-debug.apk):
https://github.com/serhatbolsu/robotframework-appium-sample/tree/master/demoapp
在新增的套件,Text Edit标签页下也可以写测试用例。
测试用例内容:
代码语言:javascript复制*** Settings ***
Documentation Simple example using AppiumLibrary
Library AppiumLibrary
*** Variables ***
${ANDROID_AUTOMATION_NAME} UIAutomator2
${ANDROID_PLATFORM_NAME} Android
${ANDROID_PLATFORM_VERSION} %{ANDROID_PLATFORM_VERSION=11}
*** Test Cases ***
Should send keys to search box and then check the value
Open Test Application
Input Search Query Hello World!
Submit Search
Search Query Should Be Matching Hello World!
*** Keywords ***
Open Test Application
Open Application http://127.0.0.1:4723/wd/hub automationName=${ANDROID_AUTOMATION_NAME} platformName=${ANDROID_PLATFORM_NAME} platformVersion=${ANDROID_PLATFORM_VERSION} appPackage=io.appium.android.apis appActivity=.app.SearchInvoke
Input Search Query
[Arguments] ${query}
Input Text txt_query_prefill ${query}
Submit Search
Click Element btn_start_search
Search Query Should Be Matching
[Arguments] ${text}
Wait Until Page Contains Element android:id/search_src_text
Element Text Should Be android:id/search_src_text ${text}
创建了3个变量,4个关键词,1个测试用例
执行前,确保手机端(示例App已安装到手机上)已连接电脑,Appium服务已开启。
选中测试用例,执行
执行成功。
还有一种执行方式:robot命令执行(robot test_file.robot)
命令行切换到项目目录下,输入执行命令即可。
robot SuiteDemo.robot
测试报告。
测试日志。
4、示例:接口
接口自动化测试用例编写与Web自动化测试用例编写步骤一致(创建项目、创建套件、导入第三方库、创建并编写测试用例等)。
官方的RequestsLibrary库API使用方法:
http://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html
在新增的套件,Text Edit标签页下写测试用例。
测试用例内容:
代码语言:javascript复制*** Settings ***
Library RequestsLibrary
*** Test Cases ***
GetDemo
${response}= GET https://www.baidu.com/
GetDemo With Parameters
${response}= GET https://jsonplaceholder.typicode.com/comments params=postId=1 expected_status=200
GetDemo Get A JSON Body
${response}= GET https://jsonplaceholder.typicode.com/posts/1
Should Be Equal As Strings 1 ${response.json()}[id]
创建了3条测试用例。
选中测试用例,执行
执行成功。
测试报告。
测试日志。