RobotFramework 简介和特点
RobotFramework 不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台。他拥有的特性如下:
- 支持关键字驱动、数据驱动和行为驱动
- 测试执行报告和日志是HTML格式,容易阅读
- 易于扩展,测试人员可以使用Python和java创建自己需要的测试库
- 提供了远程测试执行接口,可以进行分布式测试执行
- 易于使用,采用表格式语法,统一测试用例格式
工作原理
- 当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。
- 执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。
- Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。
- 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
2.查看执行结果:
3.查看日志