前言

Robot Framework是一款用Python编写的通用型测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型客户端(Web,PC,移动端)或者接口,也可以进行分布式测试执行。常用于验收测试和验收测试驱动开发(ATDD)的自动化测试。虽然框架本身是基于Python编写的,但也可以在Jython(Java)和IronPython(.NET)上运行,提供跨平台支持。
Robot Framework 框架是一个通用的应用和技术的独立框架。它有一个高度模块化的架构,如图所示;

Robot Framework生态系统

Robot Framework框架具有非常丰富的生态系统,它不仅具有易于使用的表格测试数据规则,可精细的控制关键字,支持行为驱动,提供远程测试执行接口进行分布式测试。这些功能由各种通用测试库,特定测试插件和工具组成。
Robot Framework框架除了自身提供了非常多的基础数据库功能,也支持第三方扩展库,同时提供了非常多的内建工具,扩展接口,方便框架与其他系统进行对接。这些一起构建了一套全面且易于扩展的Robot Framework框架系统。

1.基础库

Builtin:提供内置常用的关键字
Dialogs:提供暂停测试执行以获得用户输入的方法
Collection:提供用于处理Python列表,字典的关键字
OperatingSystem:在Robot Framework:系统中执行各种与操作系统相关的任务
Remote:作为Robot Framework与其他测试库之间的代理,实际运行的测试库可以在不同机器上。
ScreenShot:提供用于捕捉桌面 屏幕截图的基本库。
String:用于生成,修改,验证字符串的库。
Telnet:可以连接Telnet服务器,并在打开的连接上执行命令。
XML:用于生成,修改和验证XML文件的库。
Process:用于在系统中运行过程的库。
DataTime:用于日期和时间转换的库。

2.扩展库

AndroidLibrary:用于Android自动化测试的库,它内部使用的是Calabash Android.
AnywhereLibrary:用于测试单页应用程序(SPA)的库,它内部使用的是Selenium Webdriver和Appium.
AppiumLibrary:用于Android和ios测试的库,它内部使用的是Appium。
ArchiveLibrary:用于处理zip和zar归档的库。
AutoItLibrary:用于Windows GUI的测试库,它内部使用AutoIt作为驱动程序。
DatabaseLibrary:用于数据库测试的库,分为Java和Python两类库,一般默认是基于Python的库。
DiffLibrary:用于两个文件差异比较的库。
DjangoLibrary:Python Web框架Django的库。
FakerLibrary:虚拟测试数据生成器Faker的库。
FTPLibrary:用于Robot Framework测试和FTP服务器的库。
HttpLibrary.HTTP:用于使用请求进行HTTP级别测试的库。
iOSLibrary:用于iOS自动化测试的库,它内部使用的是Calabash iOS.
ImageHorizonLibrary:GUI自动化测试的,基于图像识别的,跨平台的纯Python库。
MongoDBLibrary:使用PyMongo和MongoDB进行交互的库。
MQTTLLibrary:用于测试MQTT代理和应用程序的库。
Rammbock:通用网络协议测试库,提供简单的方式来指定网络数据包,并检测发送和接受数据包的结果。
SikuliLibrary:提供关键字以通过Sikulix测试用户界面。
Selenium2Library:使用Selenium2的Web测试库。
SSHLibrary:通过SSH连接启用在远程计算机上执行的命令,还支持使用SFTP传输文件。
SwingLibrary:使用SwingGUI测试Java应用程序的库

3.内建工具

Rebot:基于XML输出生成日志和报告,将多个输出组合在一起的工具。
Libdoc:用于为测试库和资源文件生成关键字文档的工具。
Testdoc:基于Robot Framework测试用例生成高层次HTML文档的工具。
Tidy:清理和转换Robot Framework测试数据文件格式的工具。

4.编辑器

RIDE:独立的Robot Framework测试数据编辑器。
Atom Plugin:Atom编辑器中的Robot Framework插件。
Eclipse Plugin:Eclipse IDE的Robot Framework插件。
Gedit:Gedit的语法高亮显示。
Robot Plugin For Intelli IDEA:IDEA编辑器的Robot Framework插件。
Sublime Assistant:Sublime编辑器的Robot Framework插件。

5.其他插件

BbBot:用于将Robot Framework测试结果(即output.xml文件)序列化为SQLite数据库的工具。
Fixml:用于修复破坏的Robot Framework输出文件的工具。
Mabot:输出手工测试与Robot Framework兼容格式的报告文件。
Pabot:Robot Framework测试用例并行执行器。
RFDoc:用于存储和搜索Robot Framework测试库和资源文件文档的Web系统。
Robot Corder:通过录制用户交互扫描Chrome浏览器中HTML页面来生成Selenium IDE.
Robot Framework Hub:轻量级Web服务器,能通过浏览器对Robot Framework测试资产进行访问。
Robot Framework Lexer:用于Pygments突出显示Robot Framework语法。
Robot Tool:可以与Robot Framework一起使用的支持工具的集合。
Status Checker:验证执行Robot Framework测试用例时预期的状态和日志消息的工具

一、L3公共层.robot

以下是封装的整个项目公用的关键字。

L3层关键字.robot

*** Settings ***
Library           Public.py*** Variables ***
${air}            ${EMPTY}*** Keywords ***
截图[Arguments]    ${image_name}Pull Pic    ${image_name}${value}    Image Compare Similarity    ${image_name}[Return]    ${value}裁剪图片[Arguments]    ${image_name}    ${x1}    ${x2}    ${y1}    ${y2}Crop Pic    ${image_name}    ${x1}    ${x2}    ${y1}    ${y2}范围断言[Arguments]    ${max}    ${value}    ${min}Should Be True    ${max}>=${value}>=${min}    判断值是否在规定范围内大小断言[Arguments]    ${value1}    ${value2}Should Be True    ${value1}>=${value2}布尔断言[Arguments]    ${flag}should be true    ${flag}返回录制页面返回按钮返回按钮返回按钮返回按钮返回按钮返回按钮向上滑动Cmd    adb shell input swipe 160 230 160 30 1000Cmd    adb shell input swipe 160 230 160 30 1000向下滑动Cmd    adb shell input swipe 160 60 160 230 1000Cmd    adb shell input swipe 160 60 160 230 1000返回按钮Cmd    adb shell input tap 40 25菜单按钮Cmd    adb shell input tap 50 210点击第一栏Cmd    adb shell input tap 160 80点击第二栏Cmd    adb shell input tap 160 145点击第三栏Cmd    adb shell input tap 160 190点击第四栏Cmd    adb shell input tap 160 230下一步Cmd    adb shell input tap 280 25点击提示Cmd    adb shell input tap 160 225急减速Cmd    adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 103 --el timeStamp `date +%s`000"sleep    3获取亮度Cmd    adb root${brightness}    Cmd Popen    adb shell cat sys/class/leds/lcd-backlight/brightness[Return]    int(${brightness})获取图片相似度[Arguments]    ${image_name}${value}    Image Compare Similarity    ${image_name}[Return]    ${value}屏幕关闭时间-永久返回录制页面菜单按钮Cmd    adb shell input tap 160 220点击第二栏点击第二栏点击第二栏Cmd    adb shell input tap 210 110返回录制页面log    屏幕关闭时间设置为永久更新设备时间Update Time切换设备模式[Arguments]    ${mode}Emmc Mode    ${mode}sleep    70触发中碰撞Log    触发中碰撞事件Cmd    adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 101 --el timeStamp `date +%s`000"sleep    1Cmd    adb shell input keyevent tap 160 230触发中碰撞n次[Arguments]    ${num}    ${time}FOR    ${i}    IN RANGE    1    int(${num}+1)Log    触发中碰撞:${i}/${num}Cmd    adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 101 --el timeStamp `date +%s`000"sleep    ${time}Cmd    adb shell input keyevent tap 160 230ENDSD卡挂载名称${sd}    Sdcard[Return]    ${sd}[0]获取所有文件列表[Arguments]    ${sd}    ${flag}${allfile}    AllFiles    ${sd}    ${flag}[Return]    ${allfile}合并列表[Arguments]    ${filelist1}    ${filelist2}${filelist}    ConformList    ${filelist1}    ${filelist2}[Return]    ${filelist}获取设备系统时间${time}    GetDeviceDate[Return]    ${time}一般录影文件列表(SDcard)[Arguments]    ${sd}${file}    NormalFilesSD    ${sd}[Return]    ${file}文件拷贝到本地(SDcard)[Arguments]    ${sd}    ${file_type}    ${file}    ${num}    ${main_2nd}${copyfile}    CopyFileSD    ${sd}    ${file_type}    ${file}    ${num}    ${main_2nd}[Return]    ${copyfile}还原Cmd    adb shell settings put global event_time_span 10/5Cmd    adb shell settings put global event_pics 0,5,10,15手动触发碰撞Cmd    adb shell input tap 290 205抓logLogcat

【Android自动化测试】Robot Framework+adb框架(三)——L3公共层相关推荐

  1. 【Android自动化测试】Robot Framework+adb框架(五)——L1层测试用例

    前言 Robot Framework是一款用Python编写的通用型测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型客户端(Web,PC,移动端)或者接口,也可以进行分布式测试执行. ...

  2. android自动化测试案例全过程详解,Robot Framework+adb实现Android设备自动化测试案例①——项目介绍...

    一.项目背景 本项目主要是分享Android设备实现自动化测试,该Android设备是一台行程记录仪,因无法定位到元素(开发也没有定义元素),所以流行的Uiautomator.Appium等框架是不能 ...

  3. 自动化测试Robot FrameWork框架

    一.简介 Robot FrameWork是完全基于Python实现的开源的自动化测试框架,RF已经封装好的各个模块,基于关键字驱动的形式来实现的自动化测试.其case采用表格形式易读,且支持BDD,可 ...

  4. Robot Framework 自动化框架 - 定制自己的library

    Robot 自动化框架内置提供了一些library,如OperatingSystem(包含一些常用的的文件操作关键字,如copy文件,创建目录),Telent,Screenshot,String,另外 ...

  5. Robot Framework 自动化框架大纲

      Python + Robot Framework 环境搭建 Android SDK + Appium 环境搭建 RobotFramework - AppiumLibrary 之元素定位 Robot ...

  6. Robot Framework + Pywinauto 框架实现Windows GUI Automation

    作者:Daly 出处:http://www.cnblogs.com/daly 欢迎转载,也请保留这段声明.谢谢! 最近刚给Windows GUI automation项目介的实现框架,总结记录一下, ...

  7. Robot Framework + Selenium 框架,关键字封装,知识点记录

    目录 框架概述: 通用关键字: 等待类关键字: 通用组件 等待 元素: 通用组件 获取 元素居中滚动像素: 通用组件 页面滚动 : 通用组件 等待包含文字: 通用组件 自动切换frame : 通用组件 ...

  8. 虫师自动化测试robot Framework 框架的学习

    1.python关键字的定义 #coding=utf-8def add(a,b):return a+bif __name__ == "__main__":c = add(4,5) ...

  9. 虫师自动化测试robot Framework 框架的学习2

    循环的使用 1.in range和in的区别 输出结果 如果把上面的换成in range 会报错 未被定义,说明in range 后面使用的数据类型有限制,对比下,可以看出,in 可用在列表类型数据类 ...

  10. Android Media (Audio) Framework 多媒体系统框架

    http://blog.csdn.net/lskshz/article/details/17264113 原址:http://blog.csdn.net/myzhzygh/article/detail ...

最新文章

  1. powershell的一个小游戏,看看能写几种方式出来
  2. JavaScript实现跳跃游戏的动态编程自上而下的方法算法(附完整源码)
  3. 3_4 IteratorMode 迭代器模式
  4. 显示器选三星还是飞利浦_如何为飞利浦色相灯设置计时器
  5. 中科院超牛的物理学家,摇滚界无人不知的“李白”,你一定听过他的歌!
  6. Spring Data Solr教程:Solr简介
  7. 传一个实体一个string_没想到,一个小小的String还有这么多窍门
  8. 对于shell脚本参数获取时的一点小技巧
  9. python-3.6.2安装
  10. iptables的基本概念及数据报文在iptables中的流传过程
  11. 【免费】微信群讲座:如何成为专家
  12. 流媒体地址文件制作方法
  13. vc ctabctrl页面切换事件_10191025一周PE/VC事件回顾|猿辅导获得10亿美元G2轮融资
  14. qq盗号的小插件 各位同胞注意别被骗了
  15. 前端播放m3u8格式视频
  16. python批量转换图片格式:JPEG到jpg
  17. 手机邮箱怎么发送电子邮件?163邮箱登陆界面好看么?
  18. 乐高 42083 布加迪 Chiron(多图流量预警)
  19. php免费问答源码,whatsns问答系统PHP免费源码 v4.1
  20. 编写价格排序程序C语言,C语言程序简单例子

热门文章

  1. 利用NAS打造协同办公系统
  2. web程序中的用户注册
  3. 【云售前工具】在线绘图工具推荐
  4. Linux vps 主机有免费稳定的推荐吗?
  5. 阿里云OSS线程增长问题分析
  6. 测试用例设计与黑盒测试用例设计
  7. DSP TMS320C6455 中断解析
  8. 炫彩的按钮渐变动画——css3
  9. android studio闹钟小程序,闹钟应用程序Android Studio
  10. php 建行外联平台退款