C#中的API测试应用程序

时间:2016-03-08 10:00:37

标签: c#

我是C#的新手,我已经分配了构建API测试应用程序的工作。 响应是JSON格式(复杂),我必须验证(测试)响应的正确格式,正确的变量类型,检查是否强制数据'动态填充等(没有显式创建存储反序列化值的类)。请帮我解决。

2 个答案:

答案 0 :(得分:2)

如果您要针对集成环境/ live API进行测试,则可以使用名为RestFluencing的框架。

Rest.GetFromUrl("https://api.github.com/users/defunkt")
    .WithHeader("User-Agent", "RestFluencing Sample")
    .Response()
    .ReturnsDynamic(c => c.login == "defunkt", "Login did not match")
    .ReturnsDynamic(c => c.id == 2, "ID did not match") 
    .Assert();

此外,如果您有类模型,则可以使用JsonSchema验证器:

public class GitHubUser
{
    public int id { get; set; }
    public string login { get; set; }
}

验证

Rest.GetFromUrl("https://api.github.com/users/defunkt")
    .Response()
    .HasJsonSchema<GitHubUser>(new JSchemaGenerator())
    .Assert();

查看GitHub页面:RestFluencing

免责声明:我是该框架的开发者。在C#中以简单的方式进行完整的集成api测试已经是我一直在寻找的东西,因此这个Fluent风格的框架。

答案 1 :(得分:0)

@Abhishek,System.Json是一个.NET Framework命名空间,可以满足您的需求。请在MSDN中探索此命名空间 - https://msdn.microsoft.com/en-us/library/system.json(v=vs.110).aspx

在这个(How to make sure that string is Valid JSON using JSON.NET)帖子中还有一个替代方案--JSON.NET及其使用方法。我仍然建议使用System.Json,直到有令人信服的理由使用第三方API(JSON) .NET)。

要验证属性中的数据类型和值范围,请考虑JsonValue类的JsonType属性。此属性返回一个枚举,您可以使用该枚举来验证数据类型。对于日期数据类型,您必须使用DateTime.Parse方法从字符串中解析它。