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接口测试相关推荐

  1. python grpc 并发_用Python进行gRPC接口测试(二)

    今天将继续为大家带来用Python进行gRPC接口测试的续集,上次主要讲了一下前期准备工作和简单RPC通信方式的实现,这次我们将着眼于另一类gRPC接口的通信形式--流式RPC. 一.流式RPC的三种 ...

  2. Python脚本做接口测试,抛弃接口测试工具是否可行?(二)

    学习是为了更好的应用,之前做接口测试一直用的postman.fiddler,感觉用工具还是有些局限性,于是想着把学到的python灵活运用到接口测试中,于是就有了以下案例,思考着想用unittest做 ...

  3. 用python实现websocket请求遇到的问题及解决方法。

    用python实现websocket请求遇到的问题及解决方法. 参考文章: (1)用python实现websocket请求遇到的问题及解决方法. (2)https://www.cnblogs.com/ ...

  4. python接口自动化--接口测试工具介绍(详解)

    目录 简介 接口测试工具 1.Fiddler 2.PostMan 4.Java代码做接口测试 5.Python代码做接口测试 6.LoadRunner 7.JMeter 总结 简介 "工欲善 ...

  5. python——自动化测试——API接口测试

    python--自动化测试--API接口测试 1.Requests的安装: 首先需要安装Requests插件,有两种安装方法: (1)直接在运行结果框中输入pip install requests ( ...

  6. python实训总结和心得体会_《用Python做HTTP接口测试》学习感悟

    机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...

  7. python通信测试_Python接口测试实战1(上)- 接口测试理论

    本节内容 接口及接口测试 网络基础知识:IP,域名, DNS及端口 网络基础知识:OSI七层模型及TCP协议 HTTP协议 接口及接口测试 接口的概念 接口又称API(Application Prog ...

  8. python实现websocket服务端

    2019独角兽企业重金招聘Python工程师标准>>> ws.py是服务端,文件内容如下 #!/usr/bin/env python import socket import bas ...

  9. python requests发送websocket_Pywss - 用python实现WebSocket服务端

    一种类似Flask开发的WebSocket-Server服务端框架,适用python3.X 1.安装模块Pywss pip install pywss 2.搭建简易服务器 2.1 服务端代码 代码简介 ...

最新文章

  1. WSAStartup()函数以及DLL的加载
  2. K8S完整部署项目实战案例
  3. java string补空格_Java String字符串补0或空格详解
  4. 跳转后退_羽毛球后退步法常见问题及解决方法
  5. 【报告分享】2020新中国人才报告:共赢人力资本新生态-哈佛商业评论.pdf(附下载链接)...
  6. Java反射机制获取系统@Hide属性
  7. POJ3076 Sudoku
  8. RK3288_Android7.1调试以太网ethernet
  9. 编译原理实验二【语法分析程序设计】
  10. 打开SharePoint时遇到“Server error: http://go.microsoft.com/fwlink?LinkID=96177”
  11. 《动手深度学习》4.5 权重衰减Weight Decay
  12. dsp和通用计算机的区别,汽车dsp和功放区别
  13. Linux命令基础操作字典
  14. python爬取招聘信息_python 爬取boss直聘招聘信息实现
  15. Linux 如何查看帮助信息
  16. 论文阅读_(GIN)How Powerful are Graph Neural Networks
  17. 什么是SEO搜索引擎优化?如何实现?
  18. 按回车Enter键后自动隐藏软键盘、进页面自动弹出软键盘
  19. 计算机中存储单位的编号称号是什么,KB、MB、GB的中文单位名称是什么?
  20. 云计算机网络有限公司,目前市面3种主流的云桌面

热门文章

  1. html源码加密ensure-china_php源码加密方法详解
  2. 外边距合并(HTML、CSS)
  3. Win10+VS2017+Ceres-Solver-1.13.0配置
  4. Node爬虫,爬取传播客新闻列表
  5. matlab 创建批量文件夹_学会这12个批量操作,从此告别加班!
  6. C# 计算一点绕另一点旋转一定角度后新点的坐标
  7. github之关联远程仓库
  8. 信息隐藏技术与应用期末复习
  9. OLAP-druid-大数据Week13-DAY2-druid
  10. Canvas drawImage