Postman realiza pruebas de interfaz Websocket

Recientemente, necesito probar la interfaz websocket en mi trabajo. He estado usando Postman como herramienta de envío de contratos de conexión corta, como solicitudes http. Ahora encuentro que Postman v8.5 o superior admite websocket. Lo registraré aquí.

Primera nueva solicitud de WebSocket

En la API WebSocket, el navegador y el servidor solo necesitan completar un protocolo de enlace y se puede crear una conexión persistente directamente entre los dos para la transmisión de datos bidireccional.

Ingrese la URL de la API de WebSocket en Postman, haga clic en conectar para establecer una conexión y podrá enviar y recibir mensajes sin problemas.

Se puede enviar texto sin formato, con resaltado de sintaxis y formato automático si el formato de datos es JSON y XML, y se pueden escribir mensajes ArrayBuffer sin formato.


El tiempo de espera indicará que la conexión se ha desconectado

Los datos enviados y recibidos se mostrarán en el orden siguiente


Funciones históricas:

También puede volver a visitar sesiones anteriores de WebSocket en la sección Historial de la barra lateral de Postman. No sólo puedes ver mensajes de conversaciones históricas, sino que también puedes reutilizar la misma API.

Insertar descripción de la imagen aquí
Adicional : (Cuando aprendí sobre el protocolo websockt antes, usé Python para simular un proceso de comunicación simple entre el cliente websocket y el servidor, y supervisé la cantidad de identificadores ocupados por el proceso y la conexión de red en el servidor)

Servidor:

#! 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

Cliente:

#! 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()

Finalmente, me gustaría compartir con ustedes algunos de mis materiales de aprendizaje:

el contenido anterior debería ser el almacén de preparación más completo y completo para los amigos de pruebas de software. Para organizar mejor cada módulo, también me referí a muchas publicaciones de blog de alta calidad. en Internet. y proyectos, tratando de no perderse todos los puntos de conocimiento. Muchos amigos confiaron en estos contenidos para revisar y obtuvieron ofertas de los principales fabricantes como BATJ. Este almacén también ha ayudado a muchos estudiantes de pruebas de software. Espero que también pueda ayudarlo a usted. . .

¡Siga mi cuenta oficial de WeChat a continuación para obtenerla gratis! ↓ ↓ ↓ ↓ ↓

Supongo que te gusta

Origin blog.csdn.net/weixin_56331124/article/details/132715027
Recomendado
Clasificación