TCP以及Dubbo接口测试实现

38 篇文章 6 订阅
6 篇文章 0 订阅


1.TCP接口测试实现

1.Server端


'''
    实现基于tcp通信的服务端
'''
import socket

#定义服务端的相关信息:包含ip、端口、连接数
ip_port = ('127.0.0.1',8001)
back_log = 5
buffer_size = 1024

# 创建TCP套接字
service = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
service.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

# 绑定IP与端口
service.bind(ip_port)

# 监听
service.listen(back_log)

# 服务端的逻辑处理
while 1:
        # 接收客户端的请求内容
        con,address = service.accept()
        while 1:
            try:
                # 处理客户端数据,拆解出发送的数据内容
                msg = con.recv(buffer_size)
                print('服务端接收到的请求消息内容是:{}'.format(msg.decode('utf-8')))
                # 简单的逻辑判断
                if msg.decode('utf-8') == 'cema':
                    break
            except Exception as e:
                print(e)
                break
        # 关闭socket连接
        service.close()
        break

2.客户端

'''
tcp通信下的客户端
tcp接口测试就是通过模拟客户端进行数据的下发,从而来判断接口的业务逻辑是否正常
'''
import socket

# 定义服务端的地址信息
service_info = ('127.0.0.1',8001)

# 创建socket
client =  socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# 连接服务端
client.connect(service_info)

# 下发数据,进行服务端的接口测试工作
# while 1:
#     # 定义下发的内容
#     msg = input('请输入要传输的内容:')
#     if not msg:
#         continue
#     # 客户端接收到数据内容,并发送至服务端
#     client.send(msg.encode('utf-8'))
#     if msg == 'xuzhu':
#         break

client.send('cema'.encode('utf-8'))
# 关闭socket
client.close()

2.Dubbo接口测试实现

1.封装前

'''
基于telnet实现Dubbo接口的测试
'''
import telnetlib

# 创建telnet对象
con = telnetlib.Telnet()

# 连接dubbo服务,端口默认为20880
con.open('127.0.0.1',20880)

#操作指令集合
command = 'ls'
command1 = 'invoke com.xxx'

# 发送指令,进行调用
con.write('{}\n'.format(command1).encode())

# 接收指令的返回结果:基于数据结果进行切割,切割完成以后,将内容进行有选择性的获取
result = con.read_until('dubbo>'.encode()).decode().split('\r\n')[1]
print(result)

2.封装后

'''
基于Telnet实现Dubbo接口的测试封装
'''
import telnetlib

class Dubbo:
    # 创建telnet对象,连接dubbo服务端
    def __init__(self,ip):
        self.con = telnetlib.Telnet()
        self.con.open(ip,20880)

    # 指令的执行操作:进行接口的调用与结果的获取
    def execute(self,interface):
        # 通过invoke指令调用指定的接口
        self.con.write('invoke {}\n'.format(interface).encode())
        result = self.con.read_until('dubbo>'.encode().split('\r\n')[1])
        return result

if __name__ == '__main__':
    dubbo = Dubbo('127.0.0.1')
    result = dubbo.execute('xxx')
    print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司小幽

真诚赞赏,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值