自动化测试框架Robot Framework - 自动化测试示例

2022-07-26 13:53:13 浏览数 (1)

自动化测试框架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条测试用例。

选中测试用例,执行

执行成功。

测试报告。

测试日志。

0 人点赞