如何在空手道框架中使用 'faker' 库?
How to use 'faker' libraries in karate framework?
我想使用 'faker' 库在 JSON 文件中生成虚假数据,如下所示。
在空手道中-config.js,我执行以下操作:
var faker = require('faker');
在sample.json中:
{
'firstName': '#(faker.name.firstName)'
'city' : '#(faker.address.city)'
}
但我收到类似“无法在 'karate-config.js'
中找到 'require' 关键字的错误
请帮忙解决这个问题。
空手道不支持 NPM 或 require
关键字。对于复杂的自定义逻辑,建议使用 Java interop。
我的建议是您应该找到一个 Java 库来完成 "faker" 的功能并集成它。
感谢您的回复和建议,已在下面尝试并正常工作。
空手道-config.js:
var faker = Java.type('.FakerClass');
......
config.faker = faker;
在sample.json中:
{ 'name': '#(faker.address.city)' }
首先在你的pom.xml
中添加下面的依赖
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
求最新版本的依赖click here
在 karate-config.js 中使用以下代码:
config.faker = Java.type('com.github.javafaker.Faker');
在功能文件中使用以下代码:
* def fakerObj = new faker()
* def fName = fakerObj.name().firstName()
* def lName = fakerObj.name().lastName()
* def mailId = fName+'.'+lName+'@test.com'
您可以在 JSON 正文中使用相同的内容,如下所示:
"emailAddress":"#(mailId)",
"firstName":"#(fName)",
"lastName":"#(lName)",
"address":{
line1:"#(fakerObj.address().streetAddress())"}
faker包class和方法请click here
据我所知,空手道仅支持基于 java 的依赖项。因此,请尝试为您的 JS 库找到一个 Java 等价物。
我想使用 'faker' 库在 JSON 文件中生成虚假数据,如下所示。
在空手道中-config.js,我执行以下操作:
var faker = require('faker');
在sample.json中:
{
'firstName': '#(faker.name.firstName)'
'city' : '#(faker.address.city)'
}
但我收到类似“无法在 'karate-config.js'
中找到 'require' 关键字的错误请帮忙解决这个问题。
空手道不支持 NPM 或 require
关键字。对于复杂的自定义逻辑,建议使用 Java interop。
我的建议是您应该找到一个 Java 库来完成 "faker" 的功能并集成它。
感谢您的回复和建议,已在下面尝试并正常工作。
空手道-config.js:
var faker = Java.type('.FakerClass');
......
config.faker = faker;
在sample.json中:
{ 'name': '#(faker.address.city)' }
首先在你的pom.xml
中添加下面的依赖<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
求最新版本的依赖click here
在 karate-config.js 中使用以下代码:
config.faker = Java.type('com.github.javafaker.Faker');
在功能文件中使用以下代码:
* def fakerObj = new faker()
* def fName = fakerObj.name().firstName()
* def lName = fakerObj.name().lastName()
* def mailId = fName+'.'+lName+'@test.com'
您可以在 JSON 正文中使用相同的内容,如下所示:
"emailAddress":"#(mailId)",
"firstName":"#(fName)",
"lastName":"#(lName)",
"address":{
line1:"#(fakerObj.address().streetAddress())"}
faker包class和方法请click here
据我所知,空手道仅支持基于 java 的依赖项。因此,请尝试为您的 JS 库找到一个 Java 等价物。