zoukankan      html  css  js  c++  java
  • 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

    登录脚本

    *** 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 实现。

    Ride

    自定义 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
    
  • 相关阅读:
    使用ASP.Net WebAPI构建REST服务(一)——简单的示例
    SQL Server 自定义字符串分割函数
    [转]JSP中EL表达式三元运算符的使用
    [转]JSP页面的动态包含和静态包含示例及介绍
    jstl报错:Property 'name' not found on type java.lang.String
    [转]Extjs中的迭代方法
    eclipse mars 4.5.1 自定义工具栏
    [转]Commons IO 官方文档
    【转】eclipse运行 Ant报错Could not find the main class: org.eclipse.ant.internal.launching.remote.InternalAntRunner. Program
    【转】亲测plsql Developer配置免安装oralce客户端步骤
  • 原文地址:https://www.cnblogs.com/Zhang-Xiang/p/12427427.html
Copyright © 2011-2022 走看看