如何解决JMeter Beanshell后处理器:读取文件
我正在Beanshell后处理器中使用以下脚本
final _facebookLogin = FacebookLogin();
Future<User> facebookSignIn() async {
try {
final result = await _facebookLogin.logInWithReadPermissions(['email']);
print('facebook login access token: ${result.accessToken}');
print('facebook login error message: ${result.errorMessage}');
print('facebook login status: ${result.status}');
switch (result.status) {
case FacebookLoginStatus.loggedIn:
print(result.accessToken.token);
break;
case FacebookLoginStatus.cancelledByUser:
print('CANCELED BY USER');
break;
case FacebookLoginStatus.error:
print(result.errorMessage);
break;
}
if (result.status == FacebookLoginStatus.loggedIn) {
print('facebook login result status: ${result.status}');
print('facebook login result: ${result.toString()}');
final AuthCredential credential =
FacebookAuthProvider.credential(result.accessToken.token);
UserCredential userCredential =
await firebaseAuth.signInWithCredential(credential);
print('user credential: ${userCredential.user.displayName}');
return userCredential.user;
}
return null;
} on FirebaseAuthException catch (e) {
print('facebook error: ${e.message}');
return null;
}
}
但是我收到以下错误 BeanShellInterpreter:调用bsh方法时出错:eval源文件:内联评估:``import java.io. *;文件f =新文件(“ C:\ Users \ xxxxx \ Desktop \ testresults.csv”)。 。 。 ”令牌解析错误:第2行第23列出现词法错误,在“ C:\”之后遇到:“ U”(85)。
什么可能导致上述错误。
解决方法
您需要escape a backslash加上反斜杠,例如:
C:\\Users\\xxxxx\\Desktop\\testresults.csv
或使用正斜杠代替:
C:/Users/xxxxx/Desktop/testresults.csv
更多提示:
- Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language用于脚本编写
- 如果您使用2个或多个并发线程运行测试,则它们将写入同一文件,由于race condition而导致数据损坏,因此也许值得考虑改用Flexible File Writer
更改为JSR223后处理器并写为一行(默认情况下是普通行)
new File("C:\\Users\\xxxx\\Desktop\\\testresults.csv") << (prev.getResponseCode().equals("200") ? "Test Passed" : "Test failed")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。