Postman进行Websocket接口测试

      最近工作需要测试websocket接口,之前一直用Postman做http请求这种短连接的发包工具,现在发现Postman v8.5以上的版本支持websocket了,在此记录一下。

Postman进行Websocket接口测试_第1张图片

 

首先New一个WebSocket Request

Postman进行Websocket接口测试_第2张图片       在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

       在Postman中输入 WebSocket API URL,点击connect建立连接,就可以无缝发送和接收消息了。

       可以发送text纯文本,如果数据格式为JSON 和 XML,会有语法突出显示和自动格式化 ,还可以编写原始 ArrayBuffer 消息。

Postman进行Websocket接口测试_第3张图片

超时会提示连接已断开

发送和接收的数据会在下方按顺序显示

Postman进行Websocket接口测试_第4张图片

历史功能:

       还可以在 Postman 侧边栏的历史记录部分重新访问之前的 WebSocket 会话。不仅可以查看历史会话的消息,还可以重用相同的 API。   

Postman进行Websocket接口测试_第5张图片

附加:(之前了解websockt协议的时候,用python模拟了一个简单的,websocket客户端和服务器的通信过程,并监控了进程所占用的句柄数和服务器上的网络连接情况)

服务端:

#! python3
# SocketTestClient
# -*- coding:utf-8 -*-

import socket
import os
import subprocess
import time

host = '0.0.0.0'
port = 9918

host = socket.gethostname()
print('客户端host = ',host)
print("客户端请求PID = %i" % (os.getpid(),))
obj = socket.socket()
obj.connect((host, port))
print('netstat -nlp | grep %s' % port)
os.system('netstat -nlp | grep %s' % port)
j = 0
while True:
    obj.send(bytes("这是客户端第 %s 条消息! " % j, encoding="utf-8"))
    #time.sleep(5)
    j = j + 1
    print("发送了 %s 条!" %j)
    if j == 5:
        obj.send(bytes("End", encoding="utf-8"))
        ret = str(obj.recv(1024), encoding="utf-8")
        print('ret = ',ret)
        if ret == 'Finish!':
            obj.close()
            break
    else:
        continue

 客户端:

#! python3
# SocketTest.py
# -*- coding:utf-8 -*-


import socket
import os
import time


def socketTest():
    while True:
        ret = str(conn.recv(1024), encoding="utf-8")
        print(ret)
        if 'End' in ret:
            print('连接结束-End')
            print('---------------------------------')
            conn.sendall(bytes("收到断开连接信息-End!", encoding="utf-8"))
            conn.close()
            sk.close #不发送fin包
            conn.sendall(bytes("我再发!", encoding="utf-8"))
            conn.sendall(bytes("我再发!", encoding="utf-8"))
            os.system('netstat -nlp | grep %s' % port)
            break
        else:
            print('Not close')
            continue


if __name__ == '__main__':
    while True:
        host = '0.0.0.0'
        port = 9918

        host = socket.gethostname()
        print(host)
        print("PID = %i" % (os.getpid(),))

        sk = socket.socket()
        sk.bind((host, port))
        sk.listen(60)
        # sk.settimeout(10)
        print('端口监听中...')
        os.system("netstat -nlp|grep :%i" % (port,))
        print('客户端返回连接信息')
        conn, address = sk.accept()
        print('连接中...')
        print('连接来自: ', address)
        print('---------------------------------')
        print("lsof -p %i" % (os.getpid(),))
        os.system("lsof -p %i" % (os.getpid(),))
        print('---------------------------------')
        print('netstat -nlp | grep %s' % port)
        os.system('netstat -nlp | grep %s' % port)
        print('---------------------------------')
        print('ls /proc/%i/fd |wc -l '% (os.getpid(),))
        os.system('ls /proc/%i/fd |wc -l '% (os.getpid(),))
        #socketTest()

你可能感兴趣的:(测试工具,websocket,postman,测试工具,python,linux)