amazon API请求:错误503,尽管有一些延迟

时间:2017-12-18 15:58:40

标签: java swing amazon-web-services java-threads edt

我正在使用亚马逊帐户访问亚马逊图书的数据库。我的帐户仅用于此,我不会用它销售任何东西。 我无法一个接一个地访问亚马逊API 5次,尽管彼此之间有2秒的延迟:我得到503错误。

这是我的测试代码:

@Test
  public void testZERO_searchISBN_why503() throws Exception {

    //le livre recherché n' existe pas ou problème de communication avec Amazon
    setupSystemForTestsOfZERO_spyBookList();

    for (int i = 0; i < 5; i++) {
      execute(() -> statesManager.getState().searchISBN
              ("çè_ééàè\"à&à(à"));

      execute(() -> Thread.sleep(2000));
      execute(() -> statesManager.setZERO());
    }
    verify(bookList, times(5)).getBookByISBN("9782207301050");
  }

这里有一些解释:

  • 为searchISBN()提供的参数是ISBN代码,但是对于azerty键盘,数字在相同的键中以相应的字符进行转换。无论如何,这部分有效,没有问题。认为这是一个普通的ISBN代码(&#34; 978xxxxxxxxxx&#34;)
  • execute()方法来自assertJ Swing测试框架,该语句在EDT中运行其lambda参数。在运行测试时,我观察到2秒延迟,但我不确定这是让系统等待的正确陈述
  • 验证声明来自mockito,它验证了发往亚马逊的请求的内部方法被调用为5次且只有5次:没有隐藏的调用可以证明503错误......

顺便说一下,正如我在SO中看到的那样,503错误是由amazon发送的,如果请求太快,我的测试似乎不是这样。

谢谢

0 个答案:

没有答案