Python进行websocket接口测试
Python进行websocket接口测试
Nikon937
Python进行websocket接口测试 - 简书
我们在做接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python进行websocket接口测试。
现在大多数用的都是websocket,那我们就先来安装一下websocket的安装包。
pip install websocket-client
安装完之后,我们就开始我们的websocket之旅了。
我们先来看个简单的例子:
import websocket
ws = websocket.WebSocket()
ws.connect("ws://example.com/websocket", http_proxy_host="proxy_host_name", http_proxy_port=3128)
这个例子就是创建一个websocket连接,这个模块支持通过http代理访问websocket。代理服务器允许使用connect方法连接到websocket端口。默认的squid设置是“只允许连接HTTPS端口”。
在websocket里,我们有常用的这几个方法:
on_message方法:
def on_message(ws, message):print(message)
on_message是用来接受消息的,server发送的所有消息都可以用on_message这个方法来收取。
on_error方法:
def on_error(ws, error):print(error)
这个方法是用来处理错误异常的,如果一旦socket的程序出现了通信的问题,就可以被这个方法捕捉到。
on_open方法:
def on_open(ws):def run(*args):for i in range(30):# send the message, then wait# so thread doesn't exit and socket# isn't closedws.send("Hello %d" % i)time.sleep(1)time.sleep(1)ws.close()print("Thread terminating...")Thread(target=run).start()
on_open方法是用来保持连接的,上面这样的一个例子,就是保持连接的一个过程,每隔一段时间就会来做一件事,他会在30s内一直发送hello。最后停止。
on_close方法:
def on_close(ws):print("### closed ###")
onclose主要就是关闭socket连接的。
如何创建一个websocket应用:
ws = websocket.WebSocketApp("wss://echo.websocket.org")
括号里面就是你要连接的socket的地址,在WebSocketApp这个实例化的方法里面还可以有其他参数,这些参数就是我们刚刚介绍的这些方法。
ws = websocket.WebSocketApp("ws://echo.websocket.org/",on_message=on_message,on_error=on_error,on_close=on_close)
指定了这些参数之后就可以直接进行调用了,例如:
ws.on_open = on_open
这样就是调用了on_open方法
如果我们想让我们的socket保持长连接,一直连接着,就可以使用run_forever方法:
ws.run_forever()
完整代码:
import websocket
from threading import Thread
import time
import sysdef on_message(ws, message):print(message)def on_error(ws, error):print(error)def on_close(ws):print("### closed ###")def on_open(ws):def run(*args):for i in range(3):# send the message, then wait# so thread doesn't exit and socket# isn't closedws.send("Hello %d" % i)time.sleep(1)time.sleep(1)ws.close()print("Thread terminating...")Thread(target=run).start()if __name__ == "__main__":websocket.enableTrace(True)host = "ws://echo.websocket.org/"ws = websocket.WebSocketApp(host,on_message=on_message,on_error=on_error,on_close=on_close)ws.on_open = on_openws.run_forever()
如果想要通信一条短消息,并在完成后立即断开连接,我们可以使用短连接:
from websocket import create_connection
ws = create_connection("ws://echo.websocket.org/")
print("Sending 'Hello, World'...")
ws.send("Hello, World")
print("Sent")
print("Receiving...")
result = ws.recv()
print("Received '%s'" % result)
ws.close()
1人点赞
Python
Python进行websocket接口测试相关推荐
- python grpc 并发_用Python进行gRPC接口测试(二)
今天将继续为大家带来用Python进行gRPC接口测试的续集,上次主要讲了一下前期准备工作和简单RPC通信方式的实现,这次我们将着眼于另一类gRPC接口的通信形式--流式RPC. 一.流式RPC的三种 ...
- Python脚本做接口测试,抛弃接口测试工具是否可行?(二)
学习是为了更好的应用,之前做接口测试一直用的postman.fiddler,感觉用工具还是有些局限性,于是想着把学到的python灵活运用到接口测试中,于是就有了以下案例,思考着想用unittest做 ...
- 用python实现websocket请求遇到的问题及解决方法。
用python实现websocket请求遇到的问题及解决方法. 参考文章: (1)用python实现websocket请求遇到的问题及解决方法. (2)https://www.cnblogs.com/ ...
- python接口自动化--接口测试工具介绍(详解)
目录 简介 接口测试工具 1.Fiddler 2.PostMan 4.Java代码做接口测试 5.Python代码做接口测试 6.LoadRunner 7.JMeter 总结 简介 "工欲善 ...
- python——自动化测试——API接口测试
python--自动化测试--API接口测试 1.Requests的安装: 首先需要安装Requests插件,有两种安装方法: (1)直接在运行结果框中输入pip install requests ( ...
- python实训总结和心得体会_《用Python做HTTP接口测试》学习感悟
机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...
- python通信测试_Python接口测试实战1(上)- 接口测试理论
本节内容 接口及接口测试 网络基础知识:IP,域名, DNS及端口 网络基础知识:OSI七层模型及TCP协议 HTTP协议 接口及接口测试 接口的概念 接口又称API(Application Prog ...
- python实现websocket服务端
2019独角兽企业重金招聘Python工程师标准>>> ws.py是服务端,文件内容如下 #!/usr/bin/env python import socket import bas ...
- python requests发送websocket_Pywss - 用python实现WebSocket服务端
一种类似Flask开发的WebSocket-Server服务端框架,适用python3.X 1.安装模块Pywss pip install pywss 2.搭建简易服务器 2.1 服务端代码 代码简介 ...
最新文章
- WSAStartup()函数以及DLL的加载
- K8S完整部署项目实战案例
- java string补空格_Java String字符串补0或空格详解
- 跳转后退_羽毛球后退步法常见问题及解决方法
- 【报告分享】2020新中国人才报告:共赢人力资本新生态-哈佛商业评论.pdf(附下载链接)...
- Java反射机制获取系统@Hide属性
- POJ3076 Sudoku
- RK3288_Android7.1调试以太网ethernet
- 编译原理实验二【语法分析程序设计】
- 打开SharePoint时遇到“Server error: http://go.microsoft.com/fwlink?LinkID=96177”
- 《动手深度学习》4.5 权重衰减Weight Decay
- dsp和通用计算机的区别,汽车dsp和功放区别
- Linux命令基础操作字典
- python爬取招聘信息_python 爬取boss直聘招聘信息实现
- Linux 如何查看帮助信息
- 论文阅读_(GIN)How Powerful are Graph Neural Networks
- 什么是SEO搜索引擎优化?如何实现?
- 按回车Enter键后自动隐藏软键盘、进页面自动弹出软键盘
- 计算机中存储单位的编号称号是什么,KB、MB、GB的中文单位名称是什么?
- 云计算机网络有限公司,目前市面3种主流的云桌面