空手道:从嵌入表达式以JSON文件动态输入值(Karate : Dynamically input

2019-09-27 08:57发布

 * def mpRequestJson =
        """
        {
            "entity": '<entity>',
            "consent": {
                "PHONE": <updategetPhonePref>,
                "EMAIL": true,
                "POST": false,
                "SMS": <updategetSMSPref>
            },
            "notices": [{
                "title": "Privacy policy",
                "version": "NA"
            }],
            "source": "web"
        }
        """
        Given path '<entity>'
        And request mpRequestJson
        When method PUT
        Then status 200
        And match $.consent.PHONE == '<updategetPhonePref>'
        And match $.consent.SMS == '<updategetSMSPref>'

        Examples:
            |entity  | updategetPhonePref|updategetSMSPref|
            |xyz| #(updategetPhonePref)|#(updategetSMSPref)|

如果我要存储在一个JSON文件,而不是在特征文件中的JSON请求,应该是什么我的JSON文件?

Answer 1:

在JSON使用嵌入式表达式 ,如

entity: '#(entity)'

然后,你可以从文件中读取数据:

* def mpRequestJson = read('my.json')

但之前read你应该初始化必须被替换的变量。 所以,你将有一些多余的线条。

* def entity = '<entity>'

减少多余的线条的一种方法是创建一个临时JSON:

* def data = { entity: '<entity'>, phone: '<updategetPhonePref>' }

然后你就可以在JSON做到这一点:

entity: '#(data.entity)'

阅读上的文档驱动的测试数据也请。



文章来源: Karate : Dynamically input values from embedded expressions in a JSON file
标签: karate