如何通过npm命令行向Karate文件传递URL、Token等输入变量?
Karate通过命令行传入动态参数的实现方法
1. 修改测试脚本的Background部分
把硬编码的占位符替换为Karate支持的属性变量,实现动态读取参数:
Background: * url karate.properties['test.url'] * header Authorization = karate.properties['auth.token']
也可以简化为直接引用变量名(Karate会自动匹配命令行传入的-D参数):
Background: * url testUrl * header Authorization = authToken
2. 命令行执行时传入参数
根据运行Karate的方式,选择对应的命令格式:
方式一:通过Maven运行
如果用Maven管理项目,在命令行添加-D参数传递变量:
mvn test -Dtest=你的测试运行类名 -Dtest.url=https://目标环境地址 -Dauth.token=Bearer 你的认证令牌
方式二:直接运行Karate Jar包
如果直接使用Karate的独立Jar文件,同样通过-D参数传入:
java -jar karate.jar 你的测试文件.feature -Dtest.url=https://目标环境地址 -Dauth.token=Bearer 你的认证令牌
补充说明
- 参数名可自定义,只要脚本里的变量名和命令行
-D后的名称一致即可 - 若需区分多环境,可结合
karate.env参数,配合脚本内的条件判断实现环境自动切换
内容的提问来源于stack exchange,提问作者Sangeetha
相关产品推荐
相关产品推荐

