您为REST服务推荐哪种测试/自动化测试(基于ASP.NET WebAPI)? 当然还有单元测试,但除此之外,有必要确保在使用某个版本后,对该特定版本的任何进一步更改都会暴露出兼容的json(我们假设向json添加新字段对于客户端)。
答案 0 :(得分:1)
对于REST API的测试,我使用Robot Framework和(好)Requests library。
我提出了如下测试:
*** settings ***
Library Collections
Library requests
*** test cases ***
simpleRequest
${result} = get http://echo.jsontest.com/framework/robot-framework/api/rest
Should Be Equal ${result.status_code} ${200}
${json} = Set Variable ${result.json()}
${framework} = Get From Dictionary ${json} framework
Should Be Equal ${framework} robot-framework
${api} = Get From Dictionary ${json} api
Should Be Equal ${framework} rest
我在blog post中提供了更多详细信息。
答案 1 :(得分:0)
对于REST服务,我通常会尝试在QUnit(一个Javascript测试框架)中设置一些测试,以配合单元测试。我发现它适用于这类事情。下面是一个检查从REST服务返回的JSON的片段(使用jQuery进行调用)。
asyncTest("Test Some JSON Call", function() {
var url = "http://localhost:5555/myservice";
rest_test_jsonp(url, function(data, status){
ok(data != null);
ok(data.some_array.length > 0);
});
});
function rest_test_jsonp(url, callback) {
$.jsonp({
"url": url+"&callback=?",
"success": function(data, status, message) {
callback(data, status, message);
start();
},
"error": function(data, status, message) {
callback(data, status, message);
start();
}
});
}
它还允许您在HTML页面中运行这些测试,这对于向利益相关者演示功能很有用。