seriallibary 使用 robotframe work

1、安装  pip install robotframework-seriallibrary

https://pypi.org/project/robotframework-seriallibrary/

2、导入改库

SerialLibrary

3、简单使用  注意 格式和   波特率

https://github.com/whosaysni/robotframework-seriallibrary/blob/develop/src/SerialLibrary/__init__.py          可以查询 port的参数

#baudrate, bytesize, parity, stopbits, \ \ \ \ \ \ \ \ timeout, xonxoff, rtscts, write_timeout, dsrdtr and \ \ \ \ \ \ \ \ inter_byte_timeout.

基本用例 com——test 

注意格式:

com_test
    SerialLibrary.Add Port    COM1    baudrate=9600
    #baudrate, bytesize, parity, stopbits, \ \ \ \ \ \ \ \ timeout, xonxoff, rtscts, write_timeout, dsrdtr and \ \ \ \ \ \ \ \ inter_byte_timeout.
    SerialLibrary.Open Port
    ${a}    SerialLibrary.Get Encoding
    log    ${a}
    SerialLibrary.Write Data    \n    UTF-8
    SerialLibrary.Flush Port
    sleep    2
    SerialLibrary.Write Data    \n    UTF-8
    sleep    5
    SerialLibrary.Read All Data
    sleep    2
    Comment    ${result2}    ${return2}    Run Keyword And Ignore Error    com_data_judge    ${read}    ${val_condition}
    Comment    Run Keyword If    '${result2}'=='FAIL'    log    ok
    ...    ELSE    log    not_ok
    Wait Until Keyword Succeeds    100X    3    com_data_judge    display current-configuration    local-user admin password cipher OUM!K%F<+$[Q=^Q`MAF4<1!!
    SerialLibrary.Flush Port
    SerialLibrary.Write Data    \n    UTF-8
    sleep    3
    SerialLibrary.Close Port
    SerialLibrary.Delete All Ports

4、关键字  com_data_judge

com_data_judge
    [Arguments]    ${cli}    ${judeg_condition}
    SerialLibrary.Write Data    ${cli}    UTF-8
    sleep    2
    SerialLibrary.Write Data    \n    UTF-8
    sleep    5
    ${read}    SerialLibrary.Read All Data
    log    ${read}
    sleep    2
    ${judeg_condition}    Convert To String    ${judeg_condition}
    ${ok}    ${num_idex}    Com Data    ${read}    ${judeg_condition}
    log    ${ok}
    log    ${num_idex}
    Should Be Equal As Strings    ${ok}    ok

 

5、判断data  的py脚本

字符串的去除空格

 编码转换(串口hexlify 转换到  unhexlify )

字符串 分片

字符串去除首尾空格

比对字符串的值

脚本:

# -*- coding: utf-8 -*-
import binascii
def com_data(data1,val):
   
    data1 = data1.replace(" ","")
    
    data = binascii.unhexlify(data1)
    print data
    data = data.split("\r\n")
    val = val.encode('gbk')
    
    for i in data:
        com_data1 = i.strip()
        if com_data1 == val:
            num = data.index(i)
            return "ok",num
       
    return "not_ok"

if __name__ == "__main__":
    s = "72 6F 6F 74 6E 45 37 6A 41 25 35 6D"
    a,b=com_data(s,"vlan batch 4000 to 4001")
    print a,b

 

posted @ 2019-07-09 10:35  科学小怪癖  阅读(1364)  评论(0编辑  收藏  举报