java类
public class Utilities {
public static String generateRandomString(int length) {
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int index = (int) (Math.random() * chars.length());
sb.append(chars.charAt(index));
}
return sb.toString();
}
}
功能文件
Background:
* def RandomStringGenerator = Java.type('Utilities')
* def randomString = callonce RandomStringGenerator.generateRandomString(10)
* print 'a'+randomString
Scenario: Use Random String
* print 'b'+randomString
Scenario: Use Random String in scenario2
* print 'c'+randomString
randomString 打印 null 而不是生成的字符串。我正在使用空手道 0.9.5 版本,如果有帮助的话
callonce 理想地仅用于“纯”JSON。如果您尝试混合 JS 函数或 Java,您可能会遇到问题。 如下所示替换功能文件。您错过了添加 java 类 Utilities 的包名称。
Feature: call java static method
Background:
* def JavaDemo = Java.type('com.tests.Utilities')
* def result = JavaDemo.generateRandomString(10)
* print 'a'+result
Scenario: Use Random String
* print 'b'+result
Scenario: Use Random String in scenario2
* print 'c'+result