Python 为mountebank测试设置查询参数

Python 为mountebank测试设置查询参数,python,rest,testing,mountebank,Python,Rest,Testing,Mountebank,我想设置端点/trends?param1=PT-31。下面是我在冒名顶替中设置谓词的方法。然而,似乎没有匹配,我也没有得到回应 我错过了什么 "predicates": [ { "and": [ { "deepEquals": { "path": "/trends",

我想设置端点
/trends?param1=PT-31
。下面是我在冒名顶替中设置谓词的方法。然而,似乎没有匹配,我也没有得到回应

我错过了什么

        "predicates": [
            {
                "and": [
                    {
                        "deepEquals": {
                            "path": "/trends",
                            "query": {
                                "param1" : [
                                    "PT-31", "PT-32"
                                ]
                            },
                            "method": "GET",
                            "headers": {
                                "Content-Type": "application/json"
                            }
                        }
                    }
                ]
            }
        ]

看起来您的问题是谓词中需要两个参数-PT-31和PT-32-这两个参数将匹配/trends?param1=PT-31¶m1=PT32的路径,但不匹配/trends?param1=PT-31

其他几条建议,希望它们有用:

  • 因为您使用的是deepEquals,所以它甚至不匹配/趋势?param1=PT-31¶m1=PT-32¶m1=PT-33。它需要精确匹配。如果你想更灵活一点,我建议使用equals
  • 最外层的“and”谓词是不必要的。单个运算符(“deepEquals”)中的所有谓词都会自动进行AND运算

    • 路径
      /test
      /trends
      ?对不起。应该是
      /trends
      ,然后请编辑您的问题并更正此打字错误。完成。更新了有问题的路径。明白了,谢谢!关于如何为
      param1
      匹配
      PT-31
      PT-32
      中的任何一个有什么想法吗?是的,这就是“or”谓词,所以它应该是这样的:{“or”:[{“equals”:{“query”:{“param1”:“PT-31”},{“equals”:{“query”:{“param1”:“PT-32”}}}