Robot Framework使用自定义函数完成tcp协议发送

前言

本文章简单介绍一下Robot Framework自定义函数使用,以及如何使用自定义函数完成tcp协议发送

1、安装Robot Framework

参考文章
https://blog.csdn.net/ad520cc/article/details/130280980

2、自定义tcp相关协议函数

在项目文件下创建一个专门用来存放rf自定义函数的python文件,命名可以自定义,需要记住文件路径
在这里插入图片描述
在python文件里面自定义函数,一个python文件可以包含多个函数,可以参考如下代码,也可以自己设计。

import urllib
from time import sleep
import socket
import _thread
import threading
import json
import requests
# import urllib.request # python3中没有 urllib2 用urllib.request替代
import time
import datetime
import queue
import config
import random
from threading import Thread
from robot.libraries.BuiltIn import BuiltIn

# 全局时间同步
def appointdatetime(startDate=1):
    if startDate == 1:
        # 获取当前时间为开始时间
        startDate = datetime.datetime.now().strftime("%Y%m%d")
    date_time = startDate + str(datetime.datetime.now().strftime("%H%M%S"))
    date_time = int(date_time) - 80000
    return str(date_time)

# 编码加上IW和#后缀
def encode(msg):
    return 'IW%s#' % msg

# json编码
def load():
    # ..\\Resoource\\2.jpg
    with open('shuju.json', 'r') as f:
        data = json.load(f)
        return data


# tcp连接建立与关闭
def connect(host ,port):
    # 声明socket类型,同时生成链接对象
    s = socket.socket(socket.AF_INET ,socket.SOCK_STREAM)
    s.connect((host ,port))
    print('连接成功')
    return s

def disConnect(s):
    s.close()
    print('断开连接')


# http登录获取token
def httpLogin(baseUrl, deviceId, username=0, pw=0):
    if username==0 and pw==0:
        return ""
    else:
        print("登录L2手机,用来获取token")
        url = 'http://' + baseUrl + 'xxxxx'
        params = {"id" :username ,"pwd" :pw}
        headers = {'Content-Type': 'application/json'} # 设置请求头 告诉服务器请求携带的是json格式的数据
        r = requests.get(url=url, headers=headers, params=params)
        logInfo = r.json()
        print(logInfo['data']['token'])
        return logInfo['data']['token']

# 登录设备
def login(token, deviceId):
    loginMsg = encode('AP00,%s,KK,SS,1,%s' % (deviceId, token))
    return loginMsg

# 发送数据到服务器
def sendToServer(s,msg):
    print('sendToServer msg:',msg)
    msgBuf = msg.encode('utf-8')
    s.sendall(msgBuf)

# 格式化接收数据
def recv_message(s):
    while True:
        data = s.recv(1024).decode('utf-8').strip()
        print(data)
        if data == 'exit':
            q.put(1)
            break
        # send_message(s)
    s.close()

# 定义有返回值的数据类型
def main1(baseUrl, miaoshu, *args):
    client = connect(baseUrl, 18199)
    for i in args:
        try:
            sendToServer(client, i)
            message = client.recv(1024).decode('utf-8').strip()
            print("msg=" + message)
            sleep(miaoshu)
        except Exception as e:
            print(e)

# 定义无返回值的数据类型
def main2(baseUrl, miaoshu, *args):
    client = connect(baseUrl, 18199)
    for i in args:
        try:
            sendToServer(client, i)
            sleep(miaoshu)
        except Exception as e:
            print(e)

if __name__ == '__main__':
    main1()

3、新建“公共元素”文件

(1)打开RF,在文件夹点击鼠标右键-》New Resource,新建"公共元素"文件

在这里插入图片描述
在这里插入图片描述

(2)点击"公共元素"文件,配置Library

在这里插入图片描述

(3)选择对应路径的python文件

在这里插入图片描述

{4}在resource文件下新建keyword

在这里插入图片描述

(5)可直接引用python文件中定义的函数

在这里插入图片描述

(6)同理将其他的函数也按照这个格式创建

在这里插入图片描述

4、新建测试用例

(1)在同一个目录下点击鼠标右键-》New Suite

在这里插入图片描述

(2)新建成功之后导入刚才创建的公共元素resource

在这里插入图片描述
在这里插入图片描述

(3)创建测试用例,右键点击New Test Case


(4)最后引用公共元素中的定义即可,格式类似如下

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值