51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1533|回复: 2
打印 上一主题 下一主题

[原创] 在 robot framework 上封装 nodecv-server 的视觉判断关键字

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-28 09:27:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关键字封装
  1. opencv连接接口服务
  2.     [Documentation]    根据API配置中接口服务器地址:${opencv_server_url}  连接接口服务
  3.     create session    opencv    ${opencv_server_url}

  4. opencv关闭接口服务连接
  5.     [Documentation]    关闭所有服务  
  6.     delete all sessions

  7. opencv_dissimilarity
  8.     [Arguments]    ${image1}    ${image2}
  9.     [Documentation]   差异度   dissimilarity 的值 越小 差异 越小
  10.     ...    ${image1}    ./image/macaca.png  图片名称只能使用字母数字及下划线
  11.     ...    ${image2}    ./image/macaca_logo.png
  12.     ${image1}    _图片信息拼装    ${image1}
  13.     ${image2}    _图片信息拼装    ${image2}
  14.     ${files}    create dictionary    image1=${image1}    image2=${image2}
  15.     ${addr}    post request    opencv    ${POST_diss}    files=${files}
  16.     should be equal as strings    ${addr.status_code}    200
  17.     ${responsedata}    to json    ${addr.content}
  18.     log    ${responsedata}
  19.     [Return]    ${responsedata}

  20. opencv_matchtemplate
  21.     [Arguments]    ${image1}    ${image2}
  22.     [Documentation]
  23.     ...    ${image1}    ./image/macaca.png   被匹配标记的大图
  24.     ...    ${image2}    ./image/macaca_logo.png    为需要匹配的小图,
  25.     ...                  最好是颜色较深的 图片 带文字效果不好,获取小图在大图中的位置(坐标信息)
  26.     ${image1}    _图片信息拼装    ${image1}
  27.     ${image2}    _图片信息拼装    ${image2}
  28.     ${files}    create dictionary    image1=${image1}    image2=${image2}
  29.     ${addr}    post request    opencv    ${POST_match}    files=${files}
  30.     should be equal as strings    ${addr.status_code}    200
  31.     ${responsedata}    to json    ${addr.content}
  32.     log    ${responsedata}
  33.     [Return]    ${responsedata}

  34. opencv_cascadedetect
  35.     [Arguments]    ${image1}    ${image2}
  36.     [Documentation]
  37.     ...    ${image1}    ./image/macaca.png
  38.     ...    ${image2}    ./image/macaca_logo.png
  39.     ${image1}    _图片信息拼装    ${image1}
  40.     ${image2}    _图片信息拼装    ${image2}
  41.     # ${image1}    evaluate    ('image1', open('${image1}', 'rb'))
  42.     # ${image2}    evaluate    ('image2', open('${image2}', 'rb'))
  43.     ${files}    create dictionary    image1=${image1}    image2=${image2}
  44.     ${addr}    post request    opencv    ${POST_casca}    files=${files}
  45.     should be equal as strings    ${addr.status_code}    200
  46.     ${responsedata}    to json    ${addr.content}
  47.     log    ${responsedata}
  48.     [Return]    ${responsedata}

  49. opencv_findpairs
  50.     [Arguments]    ${image1}    ${image2}
  51.     [Documentation]
  52.     ...    ${image1}    ./image/macaca.png   图片名称只能使用字母数字及下划线
  53.     ...    ${image2}    ./image/macaca_logo.png
  54.     ${image1}    _图片信息拼装    ${image1}
  55.     ${image2}    _图片信息拼装    ${image2}
  56.     ${files}    create dictionary    image1=${image1}    image2=${image2}
  57.     ${addr}    post request    opencv    ${POST_findpairs}    files=${files}
  58.     should be equal as strings    ${addr.status_code}    200
  59.     ${responsedata}    to json    ${addr.content}
  60.     log    ${responsedata}
  61.     [Return]    ${responsedata}

  62. _图片信息拼装
  63.     [Arguments]    ${image}
  64.     # ${i_name}    get image name    ${image}
  65.     # ${i_type}    get image type    ${i_name}
  66.     ${i_name}    evaluate    re.search('\\w+\\.\\w+','${image}').group()    re
  67.     ${i_type}    evaluate    re.search('\\.\\w+','${i_name}').group()    re
  68.     ${i_type}    Set Variable    ${i_type[1:]}
  69.     ${image}    evaluate    ('${i_name}', open('${image}', 'rb'), 'image/${i_type}', {'Expires': '0'})
  70.     [Return]    ${image}
复制代码
关键字应用
  1. 8dol点击我的_微信登录
  2.     8dol_app_点击进入_登录引导页_微信登录
  3.     8dol_app_等待加载_微信登录页
  4.     sleep    1
  5.     ${image}    PK_8dol截屏    wechat_login
  6.     ${responsedata}    opencv_matchtemplate    ${image}    image/wechat_login.png   
  7.     log    ${responsedata}
  8.     ${match}    get from dictionary    ${responsedata}    match
  9.     ${x_center}    evaluate    float(${match[1]})+float(${match[3]})/2
  10.     ${y_center}    evaluate    float(${match[2]})+float(${match[4]})/2
  11.     PK_点击_坐标    ${x_center}    ${y_center}              #点击确认登录按钮
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2024-7-12 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2017-6-28 15:42:48 | 只看该作者
    我看到了“最好是”、“效果不好”
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2017-6-28 15:43:34 | 只看该作者
    乐哈哈yoyo 发表于 2017-6-28 15:42
    我看到了“最好是”、“效果不好”

    呵呵 在我们app上用 效果 确实不太好!
    不过还是有些场景可以用
    在调用微信登录时, 正好用上
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 05:32 , Processed in 0.063507 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表