• RobotFramework 自动化测试实战基础篇


    RobotFramework 简介和特点

    RobotFramework 不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台。他拥有的特性如下:

    1. 支持关键字驱动、数据驱动和行为驱动
    2. 测试执行报告和日志是HTML格式,容易阅读
    3. 易于扩展,测试人员可以使用Python和java创建自己需要的测试库
    4. 提供了远程测试执行接口,可以进行分布式测试执行
    5. 易于使用,采用表格式语法,统一测试用例格式

    工作原理

    在这里插入图片描述

    1. 当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。
    2. 执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。
    3. Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。
    4. WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

    环境搭建

    参考环境搭建步骤

    元素定位

    参考元素定位

    基本使用

    参看基本使用

    案例演示

    已云课登录为例, 记录每一步操作即可完成一个登录流程

    1.脚本

    在这里插入图片描述

    *** Settings ***
    Library           Selenium2Library
    
    *** Test Cases ***
    正常登录
        open browser    https://staging.shiyanlou.com/    gc
        Maximize Browser Window
        Click Element    //a[text()='登录']    # 点击登录
        Click Element    //span[text()='手机登录']    # 选择手机登录
        sleep    2
        input text    //input[contains(@placeholder,'请输入手机号码')]    ******    # 输入手机号
        input text    //input[contains(@placeholder,'请输入密码')]    ******    # 输入密码
        Click Element    //button[@class='!text-18px ant-btn ant-btn-primary ant-btn-block']    # 点击登录
        sleep    2
        # 判断是否有弹窗
        ${a}    Run Keyword And Return Status    Page Should Contain    立即领取
        log    ${a}
        Run Keyword IF    ${a}==True    Click Element    //*[@id="studentsIdentificationCopon___BV_modal_body_"]/div/img
        # 判断是否登录成功
        Page Should Contain Element    //*[@id="__layout"]/div/div[4]/div[1]/div/div[1]/div[1]/div/div/div/div[2]/div/div[1]/div
        Mouse Over    //*[@id="__layout"]/div/div[2]/div/div/div[2]/div/div/a
        sleep    1
        Click Element    //a[text()='退出登录']
        Wait Until Element Is Visible    //a[text()='登录']    timeout=5
        close all browsers
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    2.查看执行结果:

    在这里插入图片描述

    3.查看日志

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    三十四、Fluent液体喷雾蒸发模拟
    超简单!!!搭建阿克曼ROS小车
    Java 21新特性:Sequenced Collections(有序集合)
    【论文解读】RLAIF基于人工智能反馈的强化学习
    java.lang.Exception: No runnable methods
    图论(强联通分量)
    计算机毕业设计Java考研部落系统(源码+mysql数据库+系统+lw文档)
    Go程序设计语言 学习笔记 第十三章 低级编程
    cadence SPB17.4 - allegro - use potrace convert bmp to dxf, then import
    数字赋能机械制造业,供应链协同管理系统解决方案助力企业供应链再升级
  • 原文地址:https://blog.csdn.net/weixin_45014379/article/details/133685523