Привет. Я пытаюсь проверить производительность сервера sftp с помощью JMeter при загрузке файлов на сервер в коде python.
мой код для загрузки файла:
import socket
import os
import time
import threading
import paramiko
#-------
#defining the variables: host, port, user, password, serverpath, localpath, uploadDataAmount and sleepTime
#here I just define the variables it is not related to the problem.
#I didn't add it because it contains ip and password of the server.
#-------
transport = paramiko.Transport((host, port))
transport.connect(None, user, password)
sftp = paramiko.SFTPClient.from_transport(transport)
fileServer = sftp.open(serverpath, 'ab')
fileClient = open(localpath, 'rb')
try:
data = fileClient.read(uploadDataAmount)
while(data != b''):
fileServer.write(data)
size = str(fileServer._get_size())
print("file size in bytes before going to sleep: "+size)
time.sleep(sleepTime)
print("waking up ")
data = fileClient.read(uploadDataAmount)
finally:
fileClient.close()
fileServer.close()
if sftp:
sftp.close()
if transport:
transport.close()
Я проверил свой код python в visual studio, и он отлично работает
Я новичок в JMeter, поэтому я Я не совсем уверен, как это работает, чтобы заставить его работать с кодом python, я скачал файл jython.jar и добавил его в каталог lib в моем каталоге JMeter. Но мой код использует пакет paramiko, поэтому, когда я пытаюсь запустить его, jmeter возвращает ошибку: Response message:javax.script.ScriptException: ImportError: No module named paramiko in <script>
Я попытался изменить импорт paramiko следующим образом:
import sys
sys.path.append(
"C:\\Users\\YShay\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages")
from paramiko import Transport, SFTPClient
и снова отлично работал в visual studio.
но я получил следующую ошибку в jmeter: Response message:javax.script.ScriptException: ImportError: No module named six in <script>
Может кто-нибудь, пожалуйста, помогите мне? Как я могу импортировать paramiko в моем python коде в jmeter?