我是RestSharp的新手,因为我对API进行自动化。 如何知道特定的数据存在于Get方法中。在我的API中,存在3个对象。这些是分页,数据和信息。 现在,我想检查一下,“名字”值是否与“数据”对象匹配。
我使用了JsonDeserializer概念。但是我无法移动“数据”对象。
var client = new RestClient("https://ecovon.com/search?keyword=marketing&page=1");
var request = new RestRequest(Method.GET);
//Header values.
request.AddHeader("Content-Type", "application/json");
//Execute script
IRestResponse restResponse = client.Execute(request);
var deserialize = new JsonDeserializer();
var output = deserialize.Deserialize<Dictionary<string, string>>(restResponse);
var result = output["firstname"];
Assert.AreEqual(result, "Matt", "Name not matched.");
答案 0 :(得分:0)
简单的答案就是你没有。
单元测试API时,您有许多选择。
您可以添加一些测试数据,然后使用这些数据,但是当多个人触发自动测试然后更改数据时,这将变得很棘手,所以我不是这种方法的忠实拥护者。
< / li>在测试任何东西之前,首先创建所需的数据并对其进行断言。完成后,您只需删除创建的数据,这样就不会污染正在测试的现有系统。
想象一下这种情况:
您有一个用户,名字是 Frank ,名字是 Johnson 。您还需要一个唯一的电子邮件地址才能创建它。
您想测试一种返回全名 Frank Johnson 的方法。
您可以使用guid作为用户名,格式为guid@something.com,您可以在其中自行指定GUID。它将是唯一的,因此该部分将被覆盖。您设置其余数据。这是使用API的端点完成的。
创建用户后,您便可以使用已知的信息来调用您实际要测试的端点,以识别正确的用户,也许是他们的电子邮件,id,无论您拥有什么。
您进行断言,确认一切正确,最后使用另一个端点删除刚才创建的所有数据。例如,这甚至可能是您没有在生产中公开的端点,或者您保护了它的端点,以便其他任何人都不能使用它。
因此,您的端点测试现在涉及调用3个端点:
这还需要更多工作,但是值得,它可以确保一切正常运行。
对于其他任何要测试的内容,您都遵循此方法,因此,根据您的测试方案,创建您需要的内容,您将知道应该获取多少数据以及应该看起来像什么,并且已经完成