javascript - 在 jmeter 中加载两个 javascript 文件后,我无法使用 javascript 文件的功能
问题描述
我正在使用 jmeter 5.2.1 版。为了加载我的 javascript 文件,我使用 jsr223 采样器,其语言为 javascript。我的问题是我必须在不使用外部 phantomjs 驱动程序的情况下从 jmeter 登录 cognito。因此,我导入了用于登录 cognito 的 cognito javascript 文件并提供了正确的详细信息。以前,当我通过外部创建的 js 文件使用 phantom js 登录时,此代码可以正常工作。但是在 jsr223 采样器中移动我的代码时,它会给出错误 "AWSCognito" is not defined in . 我还将 jsr223 采样器的大小增加到 600 即 jsr223.compiled_scripts_cache_size=600
我正在执行以下代码
load("D:/apache-jmeter-5.2.1/bin/aws-cognito-sdk.min.js");
load("D:/apache-jmeter-5.2.1/bin/amazon-cognito-identity.min.js");
//var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
var userData = { user_email: 'test@test.com', user_pw: 'test', UserPoolId: 'test', ClientId: 'test',}
var authenticationData = {
Username : userData.user_email,
Password : userData.user_pw,
};
var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var poolData = {
UserPoolId : userData.UserPoolId,
ClientId : userData.ClientId
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
Username : userData.user_email,
Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
// console.log('access token + ' + result.getAccessToken().getJwtToken());
//document.getElementById("successAndErrorMessages").innerHTML=result.getAccessToken().getJwtToken();
log.info(result.getAccessToken().getJwtToken());
},
onFailure: function(err) {
log.info(err);
},
});
在执行我的脚本时出现以下错误
2020-01-02 10:47:59,037 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2020-01-02 10:47:59,038 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2020-01-02 10:47:59,039 INFO o.a.j.t.JMeterThread: Thread started: AutomationR&D 1-1
2020-01-02 10:48:00,381 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler (load js)path, message: javax.script.ScriptException: ReferenceError: "AWSCognito" is not defined in <eval> at line number 15
javax.script.ScriptException: ReferenceError: "AWSCognito" is not defined in <eval> at line number 15
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) ~[nashorn.jar:?]
at javax.script.AbstractScriptEngine.eval(Unknown Source) ~[?:1.8.0_221]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:225) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:71) [ApacheJMeter_java.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) [ApacheJMeter_core.jar:5.2.1]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
Caused by: jdk.nashorn.internal.runtime.ECMAException: ReferenceError: "AWSCognito" is not defined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291) ~[nashorn.jar:?]
at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1442) ~[nashorn.jar:?]
at jdk.nashorn.internal.scripts.Script$1312$\^eval\_.:program(<eval>:15) ~[?:?]
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449) ~[nashorn.jar:?]
... 11 more
请帮我解决这个问题
解决方案
看来您的库导致脚本错误
"AWSCognito" is not defined in <eval> at line number 15
解决此问题将修复您的功能。
推荐阅读
- python - FFMpeg 使用 python 子进程给出无效参数错误
- azure-data-explorer - 用于生成创建表和函数脚本的 Kusto 命令
- excel - VBA for Duplicates(特定需要)
- dialogflow-es - 调整默认上下文时,如何保持 Dialogflow 后续意图嵌套?
- python-3.x - 将实例数据导出到 CSV 时列出超过 30 天的 EBS 快照的 Boto3 脚本
- azure - 我可以在 Azure VNET 中设置 Azure 机器人服务吗?
- python - 使用 BeautifulSoup 解析单个类中的不同元素
- r - 更改图例形状以匹配绘图 (ggplot2)
- react-native - ScrollToLocation 在初始安装时不起作用
- sql - SAS proq sql 字符(存储为自 1960 年以来的天数)到日期