Python版Socket.IO接口测试脚本

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

Java版的内容如下:

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热文精选