robotframework使用之一 udp测试

一,使用的lib如下:UdpLibrary.py 主要用于测试基于udp的16进制协议的测试。socket的read是阻塞式的,使用robot自带timeout来进行超时计算,重复测试的关键字

Repeat Keyword也是系统自带的,详见user guide

import os import sys import socket class SipgwLibrary: def init(self, port_str): print "port is ",port_str self.recv_str = '' port = int(port_str) self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) host = '' self.s.bind((host, port)) def set_server(self, host, port): self.ser_address = (host, int(port)) def connect(self, host, port): self.host = host self.textport = port try: self.port = int(self.textport) except ValueError: self.port = socket.getservbyname(self.textport, 'udp') self.s.connect((self.host, self.port)) def send(self, data): print "send str[%s] to %s:%d"%(data, self.ser_address[0], self.ser_address[1]) self.s.sendto(data, self.ser_address) def read(self): # while 1: buf, address = self.s.recvfrom(2048) print "Got data[", buf, "] from", address self.recv_str = buf def recv_should_be(self, expected_recv): if expected_recv != self.recv_str: raise AssertionError("Expected recv to be '%s' but was '%s'" % (expected_recv, self.recv_str)) def run(self): self.init(30000) # self.connect("localhost", 20000) self.set_server('172.17.27.19', 20000) self.send("hello") self.read() print "after read" self.recv_should_be("OK") if __name__ == "main": sip_test = SipgwLibrary() print "test" sip_test.run()

二.  四个相关表

Setting

Value

Value

value

Value

Library

OperatingSystem

     

Library

testlibs/SipgwLibrary.py

     

Test Setup

Server init

${LOCAL_PORT}

   

Test Teardown

       

Test Timeout

5 seconds

#默认测试用例超时时间

   

Meta: Version

1.0

     

Meta: More Info

测试项目名称

**功能测试

   

Variable

Value

Value

Value

Value

${NPAC_ADDR}

172.17.27.100

     

${NPAC_PORT}

6000

     

${LOCAL_PORT}

6001

     

${**_ADDR}

172.17.27.19

     

${**_PORT}

6000

     

Test Case

Action

Argument

Argument

Argument

初始化本地端口

Server init

${LOCAL_PORT}

   

测试**1

测试**命令

AA BB 00 01

AA BB 00 02

测试**1

测试**2

测试**命令

AA BB 00 00 00

AA BB 00 00 01

测试**2

重复测试**3

[Timeout]

500

 

#重复5次,需要重置超时时间

 

Repeat Keyword

100

测试**1

AA BB **

Keyword

Action

Argument

Argument

Argument

Server init

[Arguments]

${LOCAL_PORT}

   
 

Init

${LOCAL_PORT}

   

测试**命令

[Arguments]

${SEND_STRING}

${RECV_STRING}

${COMMENT}

 

设置对端地址

${**_ADDR}

${**_PORT}

 
 

发送字符串

${SEND_STRING}

   
 

读取并检查

${RECV_STRING}

${COMMENT}

 

设置对端地址

[Arguments]

${NPAC_ADDR}

${NPAC_PORT}

 
 

Set server

${NPAC_ADDR}

${NPAC_PORT}

 

发送字符串

[Arguments]

${SEND_STRING}

   
 

Send

${SEND_STRING}

   

读取对端返回值

Read

     

检查返回值

[Arguments]

${RECV_STRING}

   
 

Recv should be

${RECV_STRING}

   

读取并检查

[Arguments]

${RECV_STRING}

${COMMENT}

 
 

读取对端返回值

     
 

检查返回值

${RECV_STRING}

   

测试Call_setup(被叫挂断)

[Arguments]

${SEND_STRING}

   
 

测试**命令

${SEND_STRING}

AA BB ** ** ** **

测试**完成

 

读取并检查

AA BB ** ** ** **

测试**1

 
 

读取并检查

AA BB ** ** ** **

测试**2

 
 

读取并检查

AA BB ** ** ** **

测试**3

 

你可能感兴趣的:(String,server,socket,测试,Class,import)