Library
关于射频指南 |机器人框架 (robotframework.org)
使用RF需要使用Library,常用的第三方库如下:
在web浏览器中进行web应用程序测试可以使用的库是
- Selenium Library 在内部使用流行的 Selenium 工具的 Web 测试库
- Browser Library 由 Playwright 提供支持。以速度、可靠性和可见性为目标。
web service和restful API可以用的库是
- Requests Library 一个机器人框架库,旨在通过包装众所周知的 Python 请求库来提供 HTTP API 测试功能
Appium Library Android and iOS UI测试,内部使用appium.
Database Library 基于python的数据库测试
selenium Library
selenium Library是RF的一个web测试库,内部使用selenium。
pip install --upgrade robotframework-seleniumlibrary
selenium Library关键字可以从下链接中查询。
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
新建一个test.robot文件,robot是RF测试用例文件的后缀。
首先在Settings导入SeleniumLibrary,然后在TestCase里写测试用例,如下例的Open Browser都是SeleniumLibrary提供的关键字,如下用例打开edge浏览器,输入框中输入关键字,并点击百度一下按钮,最后关闭浏览器。
*** Settings ***
Library SeleniumLibrary*** Test Cases ***
Search keywords in baiduOpen Browser url=https://www.baidu.com browser=edgeInput Text //input[@id="kw"] 周杰伦Click Element //input[@id="su"]Sleep 5Close Browser
从SeleniumLibrary库的文件结构可以看到,keywords包含如下相关的关键字。
关键字
如下为Click Element关键字的源码,可以看出,关键字本质是@keyword修饰的方法,
如果存在modifier或action_chain,则调用对应方法,如果不存在则直接调用selenium的元素点击方法。
@keyworddef click_element(self,locator: Union[WebElement, str],modifier: Union[bool, str] = False,action_chain: bool = False,):if is_truthy(modifier):self._click_with_modifier(locator, [None, None], modifier)elif action_chain:self._click_with_action_chain(locator)else:self.info(f"Clicking element '{locator}'.")self.find_element(locator).click()
导入Library失败
原因是python环境变量错了,电脑上有3.7的和3.8的,我用的3.8的,但是没有把3.8设置为环境变了
输入关键字,会有提示如图Input password,会提示让输入定位和密码。
Browser Library
这个库是由playwright支持的
Browser Library | ROBOT FRAMEWORK
pip install robotframework-browser
rfbrowser init
Installing playwright...
Installing playwright-chromium...
Installing playwright-firefox...
Installing playwright-webkit...
Done!
Requests Library
这个库可以进行API测试,基于Python的Requests
pip install robotframework-requests
*** Settings ***
Library RequestsLibrary*** Test Cases ***Quick Get Request Test${response}= GET https://www.google.comQuick Get Request With Parameters Test${response}= GET https://www.google.com/search params=query=ciao expected_status=200Quick Get A JSON Body Test${response}= GET https://jsonplaceholder.typicode.com/posts/1Should Be Equal As Strings 1 ${response.json()}[id]