Не удается связать aws-sdk с browserify для использования библиотеки sdk в k6 - PullRequest
0 голосов
/ 18 января 2019

Мне очень понравилась идея инструмента производительности k6. В настоящее время пытаюсь сделать окончательный выбор между Locust и k6, чтобы все сводилось к решению одного конкретного варианта использования: Мне нужно работать с AWS SDK в моих скриптах производительности (например, отправлять сообщения SQS). Основываясь на этом документе (https://docs.k6.io/docs/modules#section-importing-javascript-libraries) и факте, что AWS JS SDK совместим с Browserify, думал, что это может работать, но это не так.

Что я сделал:

git clone https://github.com/aws/aws-sdk-js.git
npm install
browserify index.js -s aws > aws.js

После этого я попытался создать простой скрипт k6, используя пакет SDK, чтобы проверить это:

import { check, sleep } from "k6";
import http from "k6/http";
import aws from "./sdk/aws-sdk-js/aws.js";

export default function() {
    var s3 = new aws.S3();
    s3.listBuckets(function(err, data) { console.log(err, data); });
    console.log(Object.getOwnPropertyNames(aws.SQS()));
    let res = http.get("https://google.com/");
    check(res, {
        "is status 200": (r) => r.status === 200
    });
    sleep(3);
};

Но продолжайте получать:

ERRO[0001] ReferenceError: escape is not defined
	at /Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:282360:21(632)
	at urlParse (/Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:282168:10(26))
	at urlParse (/Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:276923:26(8))
	at Endpoint (/Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:268402:44(89))
	at initialize (/Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:273218:21(74))
	at Service (/Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:273202:20(76))
	at /Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:277464:36(12)
	at /Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:277464:36(12)
	at /Users/ybushnev/k6/k6/sdk/aws-sdk-js/aws.js:277464:36(12)

Было бы очень полезно для любой помощи.

1 Ответ

0 голосов
/ 21 января 2019

В качестве обходного пути вы должны иметь возможность использовать API-интерфейс AWS REST и использовать этот подход для подписания ваших запросов: https://support.loadimpact.com/4.0/test-scripting/examples/#aws-signature-v4-authentication

...