如何测试socket接口_Python版Socket.IO接口测试脚本

最近一直在做Socket接口测试的实践,一直用的都是Java或者Groovy语言编写的功能和脚本。由于端上同事有在学习Python的,所以帮忙整理了一个Python版的Socket.IO接口测试脚本。

Java版的内容如下:

  • socket接口开发和测试初探
  • IntelliJ中基于文本的HTTP客户端
  • 基于WebSocket的client封装
  • 基于Socket.IO的Client封装
  • Socket.IO接口多用户测试实践
  • Gitee地址https://gitee.com/fanapi/tester
  • GitHub地址https://github.com/JunManYuanLong/FunTester

Python版没有提供登录功能,因为东西比较多,所以让端上同学用postman或者Charles|Fiddler等工具完成用户登录后的token获取。

首先要安装Socket.IO的包,Python版本是3.7,使用的pip方式进行安装,命令行如下:pip3 install python-socketio。这里网上教程很多,不多赘述。

脚本内容如下:

import socketio
import time


# wiki地址:http://wiki.okjiaoyu.cn/pages/viewpage.action?spaceKey=RJBK&title=ailearn-instruction-svr
def func(token="", uid=0, room=0):
    sio = socketio.Client()
    event = 'my_event'

    @sio.event()
    def my_response(data):
        # handle the message
        # sio.emit('my_event', {"cmd": "joinRoom", "roomId": 8888})
        print(data)

    @sio.event
    def connect():
        print("I'm connected!")

    @sio.event
    def connect_error():
        print("The connection failed!")

    @sio.event
    def disconnect():
        print("I'm disconnected!")

    url = 'http://ailearn-instruction-stress.xk12.cn:38999/?systemId={uid}&loginType=3&token={token}&userType=1'
    # dev环境的URL地址,端口38899
    # url = 'http://ailearn-instruction-dev.xk12.cn:38899/?systemId={uid}&loginType=3&token={token}&userType=1'
    url = url.format(uid=uid, token=token)

    sio.connect(
        url,transports=["websocket"])
    print('my sid is', sio.sid)
    time.sleep(3)
    # 必需进行注册和加入room操作,room等于发布教学活动的activityid
    sio.emit(event, {"cmd": "register", "userId": uid, "role": "T", "deviceVersion": "1.0","s_sid": sio.sid, "token": token})
    sio.emit(event, {"cmd": "joinRoom", "roomId": room})
    time.sleep(3)


if __name__ == '__main__':
    func(token="519594cc8e3a4bd68679b2b613c20536", uid=61951375269, room=43548)

水平有限,只能写个大致的脚本,勉强跑通,仅供参考。


公众号「FunTester」,非著名测试开发,文章记录学习和感悟,欢迎关注,交流成长。

FunTester热文精选

  • 如何成为全栈自动化工程师
  • 绑定手机号性能测试
  • 固定QPS压测初试
  • 开源礼节
  • Groovy在JMeter中应用专题
  • 基于WebSocket的client封装
  • 基于Socket.IO的Client封装
  • Socket.IO接口多用户测试实践
  • 好书推荐《Java性能权威指南》
  • 所谓UI测试
e62f245e8d5aa447fa3c0bfed3536e89.png
点击阅读原文,查看公众号历史文章
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值