首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何每分钟发出supertest请求,然后处理结果

如何每分钟发出supertest请求,然后处理结果
EN

Stack Overflow用户
提问于 2022-07-04 04:40:12
回答 1查看 155关注 0票数 0

我有一个返回服务器状态的API。当我启动一个服务时,它不时地返回不同的状态,例如->发送数据、验证、完成、准备.等等,当服务完全启动和运行时,它就发送状态为“就绪”。为了获得状态,我们有一个单独的API,我使用superTest客户机来获取响应。

代码语言:javascript
复制
When(/^service is up and running$/, async () => {
    response = await request
        .get('/api/status/')
        .set('Accept', 'application/json')
        .auth('user', 'password')
});

Get请求的响应类似于

{"env":“自动”,“状态”:{“状态”:“就绪”,"msg":“事件排队”,}

要进入“准备”状态,大约需要5-7分钟。因此,我想在每一分钟循环遍历get请求,直到我将状态变为“就绪”为止。拜托,我想知道用打字稿做这件事的最好方法是什么。我现在要做的是,

代码语言:javascript
复制
When(/^service is up and running$/, async () => {
var responseState = '';
while(responseState != 'ready'){
response = await request
        .get('/api/status/')
        .set('Accept', 'application/json')
        .auth('user', 'password')
responseState = response.body.state;
delay(60000);
  } 
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-04 21:03:38

您的代码看起来不错,只是它没有考虑到服务器因某些异常而从未启动的情况,并且您的循环一直在尝试,直到某些事情超时为止。为此,我将重写默认的黄瓜步骤超时,并为循环添加一个计数器,该计数器在达到阈值后失败。这样可以避免超时和无限循环。

关于cucumberjs超时的文档是这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72851836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档