全网最细,Python接口自动化测试websocket接口实战,即学即用......

这篇具有很好参考价值的文章主要介绍了全网最细,Python接口自动化测试websocket接口实战,即学即用......。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在python中,发送http请求,比较有名的是requests这个库;webservice的接口可以使用suds-py3来请求。那么websocket怎么请求呢?

其实在python中也有很多第三方库可以用来发送websocket请求。比如websocket-client, 那么接下来我们先来看看websocket-client这个库的使用。

Python接口自动化测试:https://www.bilibili.com/video/BV16G411x76E/

环境安装
由于websocket-client是第三方库,使用之前需要先安装,安装直接使用pip 命令安装即可。

pip install websocket-client

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

安装好websocket-client这个模块之后,就可以正式开始使用了,关于使用websocket-client模块创建socket客户端有两种方式。一个是websocket.create_connection方法,还有一个是websocket.WebSocketApp

create_connection
使用方法

建立连接
使用create_connection方法传入websocket的接口地址就可以和接口建立起连接,返回一个连接的客户端对象。

获取连接状态
连接对象有一个getstatus方法,可以用来获取连接状态,如果连接成功了,获取到的状态码即为101。

发送请求参数
建立起连接之后,如果要发送请求参数,则可以使用连接对象的send方法,注意点,send方法发生的请求参数必需是字符串类型。

获取返回结果
连接对象有一个recv方法,专门用来获取返回结果的

关闭连接
由于websocket使用的是tcp长连接,建立连接之后,如果要断开连接,需要调用连接对象的close方法才能断开连接。

案例代码

import json
from websocket import create_connection

# 1、建立连接
ws = create_connection("ws://127.0.0.1:5000/info")

# 2、获取连接状态
print("获取连接状态:", ws.getstatus())

# 3、发送请求参数
ws.send('发送数据 hello musen')

# 4、获取返回结果
result = ws.recv()
print("接收结果:", result)

# 5、关闭连接
ws.close()

关于create_connection的使用就是这么几部操作,使用起来也很方便,一般在测试websocket接口消息发送功能是否正常,发送完消息就断开连接,用这个方法还是比较方便。

不过很多情况下websocket接口只是用来做持续性监听工作,并不涉及到传递请求参数。那么使用websocket中WebSocketApp这个类来测试监听功能会更合适。

WebSocketApp

基本使用
如果要对某个接口进行长期的进行监听,监听其功能是否异常,那么就可以使用webSocketApp这个类来创建一个长连接进行监听。接下来我们一起来看看WebSocketApp这个类源码的初始化方法。

WebSocketApp初始化方法的源码

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

从上述代码中可以看到WebSocketApp进行初始化的时候定义了很多的参数。接下来给大家介绍几个常用的参数

url : url是用来接收连接的websocket的url地址的
header:header是用来传入建立连接的请求头的
on_message:是用来指定监听到数据返回是的处理方法
on_error:当连接出现错误是,会触发on_error指定的方法
on_close:当连接关闭是,则会触发on_close方法
其他的参数 大家可以去看官方文档,这边就不给大家一一说明了。

WebSocketApp对象的run_forever方法
创建了一个连接对象之后,需要不断监听返回的数据,则调用run_forever方法,要保持长连接即可,接下来我们来看一个使用案例。

案例代码

需求:监测 ws://127.0.0.1:5000/info这个接口接口是否正常。

在下面的代码中我们定义了三个方法

on_message方法:专门用来监听和处理返回的数据(这边只是打印了一下,没有做特别的处理)
on_error方法:专门用来监听是否出现错误(这边只是打印了一下错误,没有做特别的处理)
on_close方法:用来监听连接是否关闭,当连接关闭时,则会调用该方法

import websocket


# 定义一个用来接收监听数据的方法
def on_message(ws, message):
    print("监听到服务器返回的消息,内容如下:")
    print(message)

# 定义一个用来处理错误的方法
def on_error(ws, error):
    print("-----连接出现异常,异常信息如下-----")
    print(error)

# 定义一个用来处理关闭连接的方法
def on_close(ws):
    print("-------连接已关闭------")


if __name__ == "__main__":
    ws = websocket.WebSocketApp("ws://127.0.0.1:5000/info", 
				on_message=on_message,
				on_error=on_error,
				on_close=on_close,
				)
    ws.run_forever()

关于websocket-client的基本使用就给大家介绍到这里,大家有兴趣可以自己去扩展研究。

自动化测试案例

接下来给大家分享一下如何通过unittest去编写websocket的接口用例。下面是我自己写的一个websocket的接口

接口说明

投票接口
接口地址:ws://127.0.0.1:5000/vote
请求协议:websocket
请求参数:

  • id:选手编号(json字符串)

返回结果(json):

  • status: 处理状态
  • msg:描述
  • data:相关数据
  • Time:当前时间

用例代码

import json
import unittest
from websocket import create_connection
import websocket


class TestVote(unittest.TestCase):
    url = 'ws://127.0.0.1:5000/vote'

    @classmethod
    def setUpClass(cls):
		# 前置方法
        websocket.enableTrace(True)  # 打开跟踪,查看日志
        cls.ws = create_connection(cls.url)  # 创建连接
        cls.ws.settimeout(10) # 设置超时时间

    def test_connect_status(self):
        """测试连接状态"""
        # 断言连接状态
        self.assertEqual(101, self.ws.getstatus())

    def test_send_info(self):
        # 第一步:准备参数
        params = {'id': 1}
        expected = {'status': "success"}
        # 第二步:发送请求
        self.ws.send(json.dumps(params))
        # 获取结果
        result = self.ws.recv()
        res = json.loads(result)
        # 第三步:断言:
        print("接收结果:", res)
        self.assertEqual(expected['status'], res['status'])

    @classmethod
    def tearDownClass(cls):
        cls.ws.close()

if __name__ == '__main__':
    unittest.main()
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

二、接口自动化项目实战

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

三、Web自动化项目实战

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

四、App自动化项目实战

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

五、一线大厂简历

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

六、测试开发DevOps体系

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

七、常用自动化测试工具

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

八、JMeter性能测试

python调用websocket接口,自动化测试,软件测试,接口自动化,websocket,软件测试,自动化测试,python自动化测试,接口自动化测试

九、总结(尾部小惊喜)

不要因为现在的困难而放弃,因为只有坚持到最后,才会看到成功的曙光。相信自己,不断前行,你一定能够突破自我,实现更大的梦想。

只有不断努力和坚持,才能在未来的路上走得更远,实现自己的人生价值。所以,不要轻言放弃,保持勇气和信心,一步步向前迈进!

生命中最重要的不是你遭遇了什么,而是你学会了什么。只有在不断奋斗和经历中,才能成长为更好的自己,实现自己的人生价值。文章来源地址https://www.toymoban.com/news/detail-653561.html

到了这里,关于全网最细,Python接口自动化测试websocket接口实战,即学即用......的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整 2.0 CentOs安装 2.0.1 下载VM虚拟机 我直

    2024年02月08日
    浏览(25)
  • 火爆全网,Python自动化测试-openpyxl操作测试(详细)

    当做自动化测试时,测试用例逐渐变多情况下,如果所有测试用例都通过代码管理将会使得代码十分臃肿,而且维护成本会很高; 所以我们一般会通过Excel去管理所有的测试用例,而openpyxl库提供了访问Excel的方法 openpyxl的介绍 一个Python库,用于读取/写入Excel 2010 xlsx 、xlsm 、

    2024年02月11日
    浏览(6)
  • Jenkins+Python自动化测试持续集成详细教程(全网独家)

    Jenkins+Python自动化测试持续集成详细教程(全网独家)

    目录 一、前言 二、环境准备 三、创建Jenkins Job 四、编写Python自动化测试脚本 五、测试报告生成与展示 六、持续集成流程优化 七、实战演练 八、常见问题及解决方案 九、结论 Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术栈,如Java、Python、JavaScript等。

    2024年02月06日
    浏览(7)
  • 史上最细,自动化测试-logging日志采集详细实战(二)

    史上最细,自动化测试-logging日志采集详细实战(二)

    1、测试场景 给登录今日头条app的操作添加日志采集。 2、简单配置代码示例 登录成功则日志输出如下: 3、抛出问题 上面示例代码成功地获取了日志信息,但这种写法只能作用于当前模块。而一个自动化测试项目往往有多个模块,如果在每个需要获取日志的模块都使用这样

    2024年02月13日
    浏览(9)
  • 2023最全最细的Selenium+Pytest自动化测试框架实战

    2023最全最细的Selenium+Pytest自动化测试框架实战

                                      选前言#   selenium自动化+ pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 测试框架简介# 测试框架有什么优点呢: 代码复用率高,

    2024年02月06日
    浏览(13)
  • 基于 python 的接口自动化测试,让你轻松掌握接口自动化

    基于 python 的接口自动化测试,让你轻松掌握接口自动化

    目录 目录 一、简介                ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用   本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势; 然后简单讨论了一下接口测试框架的要点; 最后介绍了一下

    2023年04月19日
    浏览(7)
  • 全网最详细的Python自动化测试+邮件推送+企业微信推送+Jenkins

    全网最详细的Python自动化测试+邮件推送+企业微信推送+Jenkins

    什么是python自动化?我理解的Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提。测试工作很多时候就是在不断平衡质量、

    2024年02月03日
    浏览(5)
  • 全网最强,Python+Appium+pytest自动化测试,多设备并发+多线程(实战详细)

    全网最强,Python+Appium+pytest自动化测试,多设备并发+多线程(实战详细)

    Appium+python 实现单设备的 app 自动化测试 启动 appium server,占用端口 4723; 电脑与一个设备连接,通过 adb devices 获取已连接的设备; 在 python 代码当中,编写启动参数,通过 pytest 编写测试用例,来进行自动化测试。 若要多设备并发,同时执行自动化测试 需要: 确定设备个数

    2024年02月02日
    浏览(7)
  • python自动化接口测试

    python自动化接口测试

    前几天,同组姐妹说想要对接口那些异常值进行测试,能否有自动化测试的方法。仔细想了一下,工具还挺多,大概分析了一下: 1、soapui:可以对接口参数进行异常值参数化,可以加断言,一般我们会加httpcode是否200的较验,或者返回值json里是否有success标识等 2、LR:脚本容

    2024年02月22日
    浏览(15)
  • Python接口自动化测试实战详解

    Python接口自动化测试实战详解

    接口自动化测试是指通过编写程序来模拟用户的行为,对接口进行自动化测试。Python是一种流行的编程语言,它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 在Python接口自动化测试中,我们可以使用很多开源的测试框架,例如unittest、pytest和

    2024年02月06日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包