Locust環境搭建及報錯解決


Locust環境搭建:
pypi.python.org下載安裝第三方插件cryptography、anslcrypto、pyzmq、msgpack-python、gevent、cffi、greenlet、locustio
安裝時看報錯日志,根據日志安裝第三方庫,可通過離線安裝tar.gz包的源碼,但有時安裝會報錯,建議https://pypi.python.org/simple下直接下載第三方庫的whl文件,pip install *.whl 進行在線安裝能省去不少麻煩。
注意:一定要安裝插件依賴的對應版本。

報錯解決:
windows下locust踩到的坑總結,每個問題讓人奔潰,現在終於解決了:
一、
報錯:Unable to find vcvarsall.bat
出現原因:
msvc9compiler.py從sys.version里提取MSVC的版本號,但是在注冊表中並沒有根據版本號找到vcvarsall.bat,在系統的環境變量中也沒有找到版本號對應的路徑。后來我根據版本號,在環境變量中添加了路徑,但因為msvc9compiler.py主要是針對VS2008和VS2010所做的路徑識別,因此還是不能正確地找到vcvarsall.bat。
解決方法:

下載VS2010並安裝。

設置python安裝路徑...\Lib\distutils目錄下有個msvc9compiler.py獲取vcvarsall.bat的路徑,先在本地計算機找到vcvarsall.bat的位置path,然后直接在find_vcvarsall(version)函數中返回vcvarsall.bat的絕對路徑。

vcvarsall = path
return vcvarsall

二、
報錯:Fatal error C1083: Cannot open include file: 'openssl/opensslv.h‘
解決方法:
1、先檢查安裝的openssl.
OpenSSL官網沒有提供windows版本的安裝包,可以選擇其他開源平台提供的工具。例如 http://slproweb.com 下載安裝OPENSSL。
設置環境變量,例如工具安裝在C:\OpenSSL-Win64,則將C:\OpenSSL-Win64\bin;復制到Path中

2、然后將lib和include包copy到Python安裝對應目錄下:
Copy "openssl" folder from C:\OpenSSL-Win32\include\ to \Pyhton27\include\
and copy all libs from C:\OpenSSL-win32\lib to \Python27\Libs\
cmd下設置:
set LIB=C:\OpenSSL-win64\lib;%LIB%
set INCLUDE=C:\OpenSSL-win64\include;%INCLUDE%

三、
安裝第三方庫報錯:如cffi-1.11.5-cp37-cp37m-win64.whl is not a supported wheel on this platform.
出現原因:安裝的不是對應python版本的庫,下載的庫名中cp37代表python3.7,其他同理。
python查看版本為32bit.
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
解決方法:https://pypi.python.org/simple/cffi網站下載cffi-1.11.5-cp27-cp27m-win32.whl

四、
問題描述:SSL環境和locust環境都裝好無報錯之后,locust模塊請求https協議接口,不論POST還是GET都提示錯誤:
SSLError(Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'),))",),)
解決方法:
查官網locust.io,終於找到解決方法:https://docs.locust.io/en/latest/api.html
request(method, url, name=None, catch_response=False, **kwargs)
Constructs and sends a requests.Request. Returns requests.Response object.
利用verify參數,直接在POST/GET請求添加verify = False參數(self.client.get("/api",verify=False)),搞定,這是HTTPS網站所做的SSL證書認證,默認是True的,設置為False之后對測試沒有影響;
當然如果知道證書的路徑,應該也可以用cert設置.pem文件的路徑,也可以解決。

五、
問題描述:瀏覽器中打開127.0.0.1:8089失敗
出現原因:windows cmd下啟動locust :locust -f test.py --host=https://www.baidu.com,
netstat -ano |findstr 8089查看端口綁定在[::]:8089
解決方法:瀏覽器中需訪問ipv6本地地址:http://[::1]:8089/,訪問成功

 

如有轉載請注明原文出處,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM