Tôi đang làm việc để tự động hóa kịch bản Kết thúc đến cuối bằng cách sử dụng Mocha. Tôi có điểm cuối url sẽ được thăm dò cho đến khi một giá trị nhất định thu được trong phản hồi kết quả. Có cách nào để làm điều đó ?Bỏ phiếu cho URL cho đến khi giá trị nhất định được đặt trong phản hồi JSON: Mocha, Kiểm tra tích hợp
Trả lời
Đây là cách tôi đã có thể làm điều đó với WebdriverIO và Mocha
describe("wait for value in content of page",() => {
it("should be able to wait to value in url",() => {
var max_seconds_to_wait = 10;
var seconds_counter = 0;
var should_continue = true;
while (should_continue) {
browser.url('http://your.url.com');
var response = JSON.parse(browser.getText("body"));
console.log(response)
if (response == 'something') {
should_continue = false;
}
browser.pause(1000);
seconds_counter++;
if (seconds_counter > max_seconds_to_wait) {
throw 'Waiting for json from url timeout error';
}
}
});
});
Bạn đã bỏ lỡ một số điều: 1) kiểm tra phản hồi có giá trị kỳ vọng 2) lỗi ném vào thời gian max_seconds_to_wait 3) thay đổi thời gian chờ mặc định chỉ cho thử nghiệm này. Ý tưởng sử dụng WebdriverIO rất tuyệt! – galkin
Cảm ơn bạn đã bình luận, tôi đã chỉnh sửa câu trả lời. Tôi nghĩ rằng một cách tốt hơn để làm điều đó là tạo ra một hàm có thể xuất khẩu không phải bên trong thử nghiệm, như một hàm tiện ích, và sau đó nó sẽ dễ dàng hơn để vượt qua hàm này time_to_wait cần thiết. – satlosb
Ví dụ với request và cách tiếp cận callback:
const request = require('request');
describe('example',() => {
it('polling', function (done) {
this.timeout(5000);
let attemptsLeft = 10;
const expectedValue = '42';
const delayBetweenRequest = 100;
function check() {
request('http://www.google.com', (error, response, body) => {
if (body === expectedValue) return done();
attemptsLeft -= 1;
if (!attemptsLeft) return done(new Error('All attempts used'));
setTimeout(check, delayBetweenRequest);
});
}
check();
});
});
Ví dụ với got và async/chờ đợi cách tiếp cận:
const utils = require('util');
const got = require('got');
const wait = utils.promisify(setTimeout);
describe('example',() => {
it('polling', async function (done) {
this.timeout(5000);
const expectedValue = '42';
const delayBetweenRequest = 100;
for (let attemptsLeft = 10; attemptsLeft; attemptsLeft -= 1) {
const resp = await got.get('http://www.google.com');
if (resp.body === expectedValue) return done();
await wait(delayBetweenRequest);
}
done(new Error('All attempts used'));
});
});
- 1. jQuery AJAX bỏ phiếu cho phản hồi JSON, xử lý dựa trên kết quả AJAX hoặc nội dung JSON
- 2. Kiểm tra trong phản hồi API REST
- 3. kiểm tra tích hợp commander.js cho CLI
- 4. Kiểm tra phản hồi trong node.js?
- 5. apache-jmeter có thể kiểm tra giá trị trả lại của một URL để có phản hồi chính xác không?
- 6. Cách kiểm tra URL mà NSURLConnection của bạn cung cấp cho bạn phản hồi từ đâu?
- 7. Trích xuất giá trị duy nhất từ phản hồi JSON Python
- 8. Kiểm tra cột cho giá trị duy nhất
- 9. Mocking cho các bài kiểm tra tích hợp
- 10. Tại sao JBuilder không trả về nội dung phản hồi trong JSON khi kiểm tra RSPEC
- 11. Javascript - kiểm tra mảng cho giá trị
- 12. linq Kiểm tra trước tiên cho giá trị mặc định
- 13. Kiểm tra tích hợp RabbitMQ và luồng
- 14. kiểm tra cài đặt điện thoại cho phản hồi xúc giác
- 15. Không thể trích xuất phản hồi: không tìm thấy HttpMessageConverter phù hợp cho loại phản hồi
- 16. Đặt giá trị mặc định cho Hộp tổ hợp ttk
- 17. Đặt kiểu phản hồi mặc định trong WCF Web Api
- 18. Cách kiểm tra lại cùng một URL bằng cách sử dụng Mocha và Nock?
- 19. Các ký tự không hợp lệ trong phản hồi JSON
- 20. Kiểm tra vòng lặp Mocha?
- 21. Mocking Bigquery cho các bài kiểm tra tích hợp
- 22. bỏ phiếu và bỏ phiếu dài
- 23. Bỏ qua phản hồi khi thực hiện postObject trong RestKit cho iOS
- 24. Cách chỉ định giá trị mặc định khi phân tích cú pháp JSON trong Go
- 25. Phản hồi tích hợp PayPal Express Checkout
- 26. Http mã phản hồi cho hợp lệ/nhỡ tên máy chủ
- 27. Kiểm tra tích hợp javascript cho một ứng dụng trang
- 28. IIS ghi đè văn bản phản hồi HTTP khi trạng thái phản hồi HTTP được đặt là 400
- 29. Node.JS kiểm tra DOM với Mocha?
- 30. Làm cách nào để phân tích cú pháp phản hồi JSON từ Yêu cầu Python?
kiểm tra điều này https://github.com/ilikebits/gallop –
Làm cách nào để cung cấp ủy quyền cho yêu cầu GET và tôi cũng nhận được TypeError: Không thể đọc thuộc tính 'đăng ký' của lỗi không xác định –
bạn có biết lập trình socket với nút không? – Salman