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

pact.io-需要在请求中指定url子域

斜和硕
2023-03-14

我是Pact.io的新手,正在尝试在我们的平台上设置合同测试。应用程序是这样设置的,每个客户帐户都有自己的数据库模式,直接绑定到一个URL子域。当发出API请求时,除了授权标头之外,还必须提供该URL子域。我可以创建一个静态令牌来与使用者测试一起传递,但是当Pact发送请求时,它不知道要使用哪个帐户。我看不出有什么方法可以通过一个URL子域作为消费者测试的一部分,并且不确定如何强制它使用提供者端的特定帐户?有什么想法吗?

I, [2017-10-25T12:39:24.344559 #91639]  INFO -- : Running example 'Verifying a pact between bridge_perform and bridge_learn Given one user a get request for learn users with GET /api/learner/users returns a response which has a matching body'
I, [2017-10-25T12:41:40.962186 #91639]  INFO -- : Sending GET request to path: "/api/learner/users" with headers: {"HTTP_AUTHORIZATION"=>"Basic xxxxxxxxxxxxxxxxxxxxx"}, see debug logs for body
D, [2017-10-25T12:41:40.962234 #91639] DEBUG -- : body :
I, [2017-10-25T12:41:40.977995 #91639]  INFO -- : Received response with status: 200, headers: {"Content-Type"=>"text/html", "ETag"=>"W/\"1bd857d3e20d3ed50aa6f48b5be15f42\"", "Cache-Control"=>"max-age=0, private, must-revalidate", "X-Request-Id"=>"8dd9a9bf-da21-44b1-8b6b-9de486a7e9ea", "X-Runtime"=>"0.007579", "Content-Length"=>"630"}, see debug logs for body
D, [2017-10-25T12:41:40.978049 #91639] DEBUG -- : body: <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Account Not Found</title>
    <link rel="stylesheet" href="/stylesheets/application.css" />
  </head>
  <body class="indigo-bg">
    <div role="main" class="large-content-area centered margin-t-xl text-center white">
      <h1 class="h1">Oh, snap!</h1>
      <p class="large">It looks like you've tried to access App without telling us which
  account you belong to.</p>
      <p class="large">To log in, try using your account's URL. Usually that looks
  something like https://myaccount.app.com.</p>
    </div>
  </body>
</html>

下面是一个消费者测试的示例。正如您所看到的,我们创建了一个没有URL/路径的模拟提供程序,因此没有地方在指定所需帐户的URL上提供子域。

public class AdminImportedUserId  {
  @Rule
  public PactProviderRuleMk2 mockProvider = new PactProviderRuleMk2("provider_app", PactSpecVersion.V2, this);

  @Pact(provider = "provider_app", consumer = "consumer_app")
  public RequestResponsePact createFragment(PactDslWithProvider builder) throws IOException {
    return builder
        .given("an admin with two imported users")
        .uponReceiving("a get request for admin imported user id")
        .path("/api/admin/users/imports/1")
        .method("GET")
        .headers(new ProviderClient().getHeaders())
        .willRespondWith()
        .status(200)
        .body("{\"meta\":{},\"linked\":{\"contexts\":[{\"id\":1,\"class\":\"Domain\"}]},\"imports\":[{\"id\":\"160\","
        + "\"context_id\":\"1\",\"user_name\":\"user10 Royer\",\"context_description\":\"Dev Environment\","
        + "\"context_type\":\"Domain\",\"completed\":17,\"total\":17,\"state\":\"complete\",\"new_user_count\":0,"
        + "\"restored_user_count\":0,\"updated_user_count\":17,\"deleted_user_count\":0,\"ignored_user_count\":0,"
        + "\"deported_user_count\":17,\"invalid_rows\":[],\"created_at\":\"2017-09-23T13:13:21.132-06:00\","
        + "\"user_id\":4078}]}")
        .toPact();
  }

共有1个答案

郎和通
2023-03-14

当您说“URL子域”时,是指单独的主机头,例如someAccount.foo.com还是URL上的前缀,例如`http://foo.com/someAccount'?

不管是哪种方式,这些都将作为URL/路径或特定的头进入您的使用者测试中。

 类似资料:
  • 问题内容: AFAIK,您无需在onclick中指定协议: 坏 好 今天,我在GoogleAnallytics上注意到他们正在使用它: 这个例子是完全错误的,还是有理由指定除?以外的其他内容? 问题答案: 这里的一些响应声称“javascript:”前缀是“过去的遗留物”,这意味着浏览器有意对它进行了特殊处理,以实现向后兼容。是否有确凿的证据证明是这种情况(有人检查过源代码)吗? 对我来说,它的意

  • 我正在尝试在在线Swagger编辑器中的用户类上定义POST方法。 我希望能够在请求正文中指定多个字段,并且我希望生成的文档能够反映出只需要两个字段,其他字段是可选的。 我必须做什么/改变才能做到这一点? 我已经尝试过使用“required”关键字的各种变体(见下图),但没有成功,它没有显示在生成的文档中(见下图右侧,我的注释为红色)。 以下是我在编辑器中的帖子定义: 这里是生成的文档预览,我已经

  • 我在Koltin中编写了一个Vertx web处理程序,它将我收到的任何HTTP请求重定向到HTTPS,我使用的是来确定请求是否不是SSL,在我将代码放在负载平衡器后面之前,这一切都很正常。如果负载平衡器通过HTTPS与我的Vertx web服务器通信,那么它会认为所有用户请求都是HTTPS,即使它们不是。如果我将负载平衡器改为在HTTP上与Vertex web对话,那么即使用户已经在使用HTTP

  • 我用的是Spring靴。我已经为SOAP web服务编写了一个ClientInterceptor,我想记录我要向其发送请求的URL,并且我想在HandlerResponse方法中这样做。然而,我找不到一个方法来做到这一点。有可能吗?任何帮助都会很好。 创建restTemplate的方式

  • 我注意到了这一点。要求urlretrieve(url、fname_和_路径)下载任何小文件需要24秒: 而请求。get(url)下载相同文件的速度要快得多 问题是urllib花24秒下载文件的原因是什么?我该如何解决这个问题,让它更快地工作?

  • 我有一个API,它返回一个限制为100个实体的实体列表。如果有更多实体,它将为下一页返回一个标记。 我想创建一个返回所有实体(所有页面)的通量,但仅在需要时(如果要求)。 我编写了以下代码: 而且几乎成功了 如果我请求99个元素,则加载第一页,我的流量包含99个元素。 如果我请求150个元素,则加载第一页和第二页,并且我的流量包含150个元素。 但是,如果我请求100个元素,则会加载第一页和第二页