Robot Framework
背景
Robot Framework 可用于测试接口也可用于测试 WEB UI ,并且可以自定义 Python Library 以定义 Key Word 完成特定的测试需求。
运用
- 条件
- Python
- 验证输入:python --version
- 验证输出:Python 3.x.x
- 安装 Robot Framework
- 命令:pip install robotframework
- 验证输入:robot --version
- 验证输出: Robot Framework 3.1.2 (Python 3.x.x on win32)
- 安装 Ride,[参考]
- 命令:pip install robotframework-ride
- 在“运行”中输入:ride.py
- 安装 Selenium 2 (WebDriver) Library,[参考]
- 命令:pip install robotframework-selenium2library
- 升级 selenium2library:pip install robotframework-selenium2library
- Python
登录脚本
*** Settings ***
Library Selenium2Library
*** Variables ***
${Username} test
${Password} 123456
${Browser} chrome
${SiteUrl} https://test.com
${ValidateKey} testkey
*** Test Cases ***
登录 应该登录成功
Open Url
Enter User Name
Enter Password
Enter ValidateKey
Click Login
Assert Error Message
*** Keywords ***
Open Url
Open Browser ${SiteUrl} ${Browser}
Maximize Browser Window
Enter User Name
Input Text id=username ${Username}
Enter Password
Input Text id=password ${Password}
Enter ValidateKey
Input Text id=chkkey ${ValidateKey}
Click Login
Click Button Tag=button
Assert Error Message
Page Should Not Contain Textfield id=username
Ride
Ride 是 Robot Framework 的官方操作 UI ,使用 Python 实现。
自定义 Key Word
使用 Python 定义想要处理的内容,例如:根据某些条件从数据库中读出当前申请单处理人,通过脚本重新打开一个浏览器,使用处理人的账号密码登录,处理该阶段该处理的内容。
在 Key Word 逻辑中处理内容,下面 Python 代码中的 printAllInfo 就是关键字,在 Ride 中可以写微 Print All Info 或者 print all info 等
HelloWorld.py
from User import User
class HelloWorld:
"""这是一个示例 Library"""
ROBOT_LIBRARY_SCOPE = 'TEST SUITE'
@staticmethod
def printHelloWorld(text=None):
if text is None or len(text) == 0:
print("Hello world")
else:
print(text)
"""Key Word 打印用户所有信息"""
def printAllInfo(self):
self.printHelloWorld()
user = User()
self.printHelloWorld(user.getName())
self.printHelloWorld(str(user.getAge()))
if __name__ == '__main__':
HelloWorld().printAllInfo()
User.py
class User:
def __init__(self):
self.name = "张三"
self.age = 23
def getName(self):
return self.name
def getAge(self):
return self.age
作者:Zhang-Xiang
出处:https://www.cnblogs.com/Zhang-Xiang/p/12427427.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
Test
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?