Robot Framework+adb框架实现Android集成自动化测试案例⑶——L3公共层

摘要:
1、 以下关键字是整个封装项目的通用关键字。L3层关键字。robot***设置***LibraryPublic。py***变量***${air}${EMPTY}**关键字***屏幕截图[参数]${image_name}PullPic${image_name}${value}ImageCompareSimilarity${images_n

一、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 1000
    Cmd    adb shell input swipe 160 230 160 30 1000

向下滑动
    Cmd    adb shell input swipe 160 60 160 230 1000
    Cmd    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    1
    Cmd    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 230
    END

SD卡挂载名称
    ${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/5
    Cmd    adb shell settings put global event_pics 0,5,10,15

手动触发碰撞
    Cmd    adb shell input tap 290 205

抓log
    Logcat

免责声明:文章转载自《Robot Framework+adb框架实现Android集成自动化测试案例⑶——L3公共层》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇设计模式-15 模板模式css 布局下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何自定义MVC控件?

今天公司要写学习总结,想着想着还是先写一篇关于MVC内部什么东东的博客整理整理再发表吧,一举两得。 之前写过了路由、过滤器等。今天就研究一下怎么自定义MVC控件吧。 本人技术小菜,不喜勿喷。。。。。(说这句话通常有两种情况,一种是牛人谦虚的说法,一种是怕受伤害提前准备个挡箭牌) 首先我们先去熟知一下MVC内部的那些控件是怎么实现的。 首先,Input标签是...

postgresql-无序uuid tps测试

# postgresql-无序uuid tps测试## 无序uuid对数据库的影响由于最近在做超大表的性能测试,在该过程中发现了无序uuid做主键对表插入性能有一定影响。结合实际情况发现当表的数据量越大,对表插入性能的影响也就越大。### 测试环境PostgreSQL创建插入脚本,测试各种情况的tps。数据库版本:PostgreSQL 10.4 (Arte...

Python 批量插入ES

  使用Python批量插入数据到ES中,如果是一条条插入,会发现效率很低,这时需要使用ES的批量插入bulk的功能。   以下示例代码,是将masscan输出的结果文件,抽取ip,port,和时间戳,插入到es中的。 #!/usr/bin/python # coding=utf-8 import json import time from elasti...

idea修改maven默认配置不生效

1.问题现象 我的idea版本是2019.2的,通过File->Other Setting->Setting for New Projects修改maven的默认配置后,新建项目maven默认配置不生效 2.解决 打开C:Users用户.IntelliJIdea2019.2configoptions下的project.default.xml,添...

基于jQuery美化联动下拉选择框

今天给大家介绍一款基于jQuery美化联动下拉选择框。这款下下拉选择框js里自带了全国所有城市的数数库。下拉选择框适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果图如下: 在线预览   源码下载 实现的代码。 html代码: <div id="container">...

Golang学习--平滑重启

在上一篇博客介绍TOML配置的时候,讲到了通过信号通知重载配置。我们在这一篇中介绍下如何的平滑重启server。 与重载配置相同的是我们也需要通过信号来通知server重启,但关键在于平滑重启,如果只是简单的重启,只需要kill掉,然后再拉起即可。平滑重启意味着server升级的时候可以不用停止业务。 我们先来看下Github上有没有相应的库解决这个问题,...