1. 程式人生 > >Python3.6.1 websocket 需要傳header來建立長連線 模擬的客戶端 指令碼編寫

Python3.6.1 websocket 需要傳header來建立長連線 模擬的客戶端 指令碼編寫

在做介面測試過程中,使用到了websocket 來建立長連線,嘗試過使用Jmeter 工具來直接測試,不知道什麼樣的原因總是報 cannot connect to the remote server,但是實際上,server是可以remote上去的。並且詭異的是,使用websocket 外部的 一個網址(ws://echo.webscoket.org/),是可以在jmeter上使用websocket 來建立連線成功的。 但是在測試我們產品的時候,卻不行。這裡與產品的websocket長連線唯一不同的是產品的介面需要傳header,即使將header在Jmeter工具上加上,也是不能成功建立一個連線,試了多次,還找developer看了下code以及伺服器是否已經連線完好。檢查環境都是ok的,試了幾次jmeter,只有放棄,改使用Python指令碼來實現。
相對來說,使用Python指令碼,只需要模擬客戶端(jmeter工具也相當於一個模擬客戶端),那麼傳送請求資料即可,這裡需要注意的是 傳上需要的header 。
在進行指令碼編寫前,需要先安裝上python 的 websocket-client 庫。
安裝方法比較簡單:
進入到C:\Python36\Scripts 資料夾路徑下,使用命令:

pip install websocket-client 

安裝成功後,開始我們的模擬客戶端指令碼編寫,具體如下:

# -*- coding:utf-8 -*-
import time
from websocket import  create_connection
import websocket

while 1:
    ws=websocket.WebSocket()
    #建立websocket連線,這裡傳入了 header ,需要注意header的寫入方式 
    ws.connect("ws://19.16.10.63:8000/port/streaming?vend=Test",
               header=["x-token:ajKfZgQAf6vId",
                       "x-tenant:T0014",
                       "x-server:1026"])
    if ws.connected:
        #接收實時資料,並打印出來
        print(ws.recv())
        #關閉連線 
        ws.close()

執行後,可得到實時資料:

{"type":"Order","data":[{"receivedTime":1523261141,"orderId":"152636208","symbol":"NZD",{"cmd":"4","digits":"5","state":"5"},"account":"2105224075","comment":""}]}

在指令碼除錯過程中,遇到過一些問題,那麼仔細檢視python的websocket 庫原始碼,然後可以看到是websocket 是如何傳遞 header,並怎樣建立長連線的。

                                                          <OVER>

更多測試交流,可以加好友

這裡寫圖片描述

相關推薦

Python3.6.1 websocket 需要header建立連線 模擬客戶 指令碼編寫

在做介面測試過程中,使用到了websocket 來建立長連線,嘗試過使用Jmeter 工具來直接測試,不知道什麼樣的原因總是報 cannot connect to the remote server,但是實際上,server是可以remote上去的。並且詭異的是

在CentOS7.0上安裝Python3.6.1

python3.6.1 python3安裝 python安裝報錯 剛開始研究python,一直在糾結是學2.0還是3.0,聽說2.0版本將在2020年後被淘汰,於是就有了安裝3.0的需求。 本次安裝的python版本為:Python-3.6.1.tgz 操作系統信息:Linux cento

python3.6.1+selenium3.0環境安裝問題及解決方法

pre trace service java版本 erro back res exec rem 腳本:(打開火狐瀏覽器,進入百度網頁,搜索selenium) from selenium import webdriver browser = webdriver.F

Python學習筆記-編譯安裝Python3.6.1 + iPython

python由於系統已有2.6的python,最好不好修改系統的版本,使用編譯安裝下載Python3.6.1包wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz安裝依賴:yum -y install readline-devel解壓

centos 7 安裝python3.6.1

python 3.6 安裝centos7 默認安裝了python2.7.5,當需要使用python3的時候,可以手動下載python源碼後編譯安裝.python 官網:www.python.org1.安裝python可能用到的依賴yum install openssl-devel bzip2-devel ex

centos6.4下安裝python3.6.1

編譯 www logs strong file config pro 6.4 tps 1、安裝編譯環境所需包 #yum install zlib-devel bzip2-devel openssl-devel ncurese-devel gcc zli

win7安裝python3.6.1及scrapy

2-2 們的 obj rom 控制 first iter html studio ---恢復內容開始--- 第一篇博客,記錄自己自學python的過程及問題。 首先下載python3.6.1及所需資料 百度雲:https://pan.baidu.com/s/1geOEp6z

python3.6.1環境配置出現Requirement already up-to-date: pip in c:python36libsite-packages決解方案

下載 date 保持 keyword require edits 文件夾 分號 file 本文轉載於:http://qoogle.cn/?id=39 前提: windows下同時安裝python2和python3, 應將python2和python3直接安裝在 C盤下面

CentOS 7從Python 2.7升級至Python3.6.1

引言: Centos是目前最為流行的Linux伺服器系統,其預設的Python 2.x,但是根據python社群的規劃,在不久之後,整個社群將向Python3遷移,且將不在支援Python2, 那該如何平滑遷移至Python3 呢? 1.  環境介紹    Centos

Linux通過ssh遠端安裝Python3.6.1安裝包

linux系統環境自帶python2.6,但有時我們專案使用的版本可能是3.x以上等等,此時我們需要在linux中再安裝專案所需的python版本,此時就涉及多版本共存問題了,很多同學在安裝多個版本Python時會遇到各種問題 這裡主要演示通過ssh遠端安裝安裝包 1

rhel6.5:升級python3.6.1

建立安裝目錄: $ sudo mkdir /usr/local/python-3.6 下載python安裝包: $ cd /opt/ $ sudo wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz 解

shell指令碼--一鍵安裝python3.6.1+pip

#!/bin/bash yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel wget https://www.python.org/ftp/python/3.6.1/Python-3

python3.6.1 打包成.exe可執行檔案

環境: python3.6.1 win10 1、下載pyinstaller. 2、下載並安裝pywin32 (根據自己的python版本我的對應版本pywin32-220.win-amd64-py3.6.exe) 3、進入pyinstalle

centos6安裝python3.6.1

簡略記載: 如果安裝過程中出現: Python build finished successfully! The necessary bits to build these optional modules were not found: _bz2 _cur

終於在pycharm下(Python3.6.1版本)安裝完成機器學習相關庫檔案(sklearn scikit-learn gensim xgboost tensorflow nltk )

安裝scikit-learn請參考本人的相應部落格,這個是最為難安裝的。其他的大部分能夠直接通過pycharm的settings安裝。 由於安裝部分庫檔案時,會附帶安裝其他庫檔案,因此在整體安裝完成後,庫檔案還是挺多的。安裝後的整體庫包括如圖所示

windows10+pytorch+anaconda4.4.0+python3.6.1+cuda8.0+cudnn5.1

首先確認windows下cuda8.0及cudnn5.1安裝成功 確認anaconda4.4安裝成功,python版本3.6.1 下載 pytorch-0.1.12-py36_0.1.12cu80

Python3.6.1下scrapy框架安裝

我用了Python3.6安裝scrapy,杯具的是一直沒有成功。於是下載了3.6.1嘗試了一下,居然成功了! 說明一下:我的作業系統是Windows7 64位 以下步驟驗證了兩遍,希望能幫助各位道友。先說說下載資源 1. Python安裝包 python-3.6.1_32.

在Windows中安裝Python3.6.1

應該使用Python2.x還是Python3.x? Python有2.x和3.x兩個版本,這兩個版本是不相容的。 由於3.x版越來越普及,而且各種庫越來越完善,我們將以最新的Python 3.6.1版本為基礎。 https://wiki.python.

centos7下將Python2.7.5升級到Python3.6.1以及再還原到2.7.5

[[email protected] ~]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz --2017-03-22 22:04:24-- https://www.python.org/ftp/python/3.6.1/

ubuntu下如何安裝多版本的python之python3.6.1安裝numpy,scipy等依賴包

  最近需要搭建Pytorch框架,復現某個工程,需要在python3.6版本下實現。由於ubuntu14.04系統預設安裝的是python2.7.6和python3.4版本,在這個地方被坑了無數次,主要是安裝了python後需要安裝python3.6的依賴包,