当前位置: 首页 > 知识库问答 >
问题:

如何定义单字符串体的协议规范匹配规则?

吴开宇
2023-03-14

我正在为上传文件的put请求设置测试。我的协议文件中的请求主体由一个字符串组成,包含一个mime边界,该边界在每次测试运行时都会更改。我正在尝试为请求正文字符串定义一个regex匹配规则,但它不会匹配。头内容类型的类似匹配规则是匹配的。

如果主体只是一个字符串,我应该如何定义主体的匹配规则?

"request": {
    "headers": {
        "Content-Length": "206",
        "Host": "127.0.0.1:1234",
        "Connection": "Close",
        "Content-Type": "multipart/form-data; boundary=\"MIME_boundary_4FBA8D0826C707B6\""
    },
    "body": "--MIME_boundary_4FBA8D0826C707B6\r\nContent-Disposition: form-data; name=\"file\"; filename=\"test_file.txt\"\r\nContent-Type: application/octet-stream\r\n\r\nContent of test file.\r\n--MIME_boundary_4FBA8D0826C707B6--\r\n",
    "matchingRules": {
        "header": {
            "$.Content-Type": {
                "matchers": [
                    {
                        "match": "regex",
                        "regex": "multipart/form-data; boundary=\"MIME_boundary_[A-Z0-9]{16}\""
                    }
                ]
            }
        },
        "body": {
            "$": {
                "matchers": [
                    {
                        "match": "regex",
                        "regex": "--MIME_boundary_[A-Z0-9]{16}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"test_file.txt\"\r\nContent-Type: application/octet-stream\r\n\r\nContent of test file.\r\n--MIME_boundary_[A-Z0-9]{16}--\r\n"
                    }
                ]
            }
        }
    }
}

共有1个答案

张玺
2023-03-14

通过Pact的Slack通道,我们得到的答案是当前的Pact代码不支持这种类型的匹配。我们在GitHub上创建了一个特性请求问题:https://github.com/pact-foundation/pact-reference/issues/43

 类似资料:
  • 详细内容请看这里

  • Hprose(High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

  • 问题内容: 我有一个linux服务器和许多具有许多操作系统的客户端。服务器从客户端获取输入文件。Linux具有行结束符LF,而Mac具有行结束符CR,Windows具有行结束符CR + LF 服务器需要作为行字符LF的结尾。使用java,我想确保该文件将始终使用linux eol char LF。我该如何实现? 问题答案: 结合两个答案(由Visage和eumiro撰写): 编辑: 阅读评论后。

  • 问题内容: 我从一个包含特殊字符的国外来源中检索了基于文本的utf8数据,例如,当我想将它们标准化为英语时,例如。实现这一目标的最佳方法是什么? 问题答案: 我建议使用Unidecode模块: 请注意如何为它提供一个unicode字符串,并输出一个字节字符串。保证输出为ASCII。

  • 语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 location ~ pattern 开头表示区分大小写的正则匹配 location ~* pattern 开头表示不区分大小写的正则匹配 locat