Невозможно импортировать модуль python в JMeter - PullRequest
0 голосов
/ 12 января 2020

Привет. Я пытаюсь проверить производительность сервера 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?

1 Ответ

0 голосов
/ 13 января 2020

Я ожидаю, что вы установили этот paramiko модуль в свой Python, и вам нужно установить его в Jython , чтобы иметь возможность использовать его с JMeter JSR223 Sampler.

что-то вроде:

jython -m pip install paramiko

Дополнительная информация: Расширение Jython с помощью модулей Pypi


В целом ваш подход не самый лучший, начиная с JMeter 3.1, вы должны использовать JSR223 Test Elements и Groovy язык для сценариев , поэтому рассмотрите возможность переключения на Groovy, вы можете получить SSH / SFTP-соединение через библиотеку JSch .

Если вам просто нужно загрузить файл на сервер с использованием протокола SFTP, вы можете рассмотреть возможность использования S SH SFTP Sampler , чтобы вам даже не пришлось писать ни одной строки кода и принесите "инопланетянина" Python в чистую Java среду. Проверьте нагрузочное тестирование серверов FTP и SFTP с помощью статьи JMeter для получения полной информации

...