我正在Visual Studio 2015 Enterprise中编写一些网络测试来对我的API进行负载测试。
我的几个API调用期望Json对象作为请求的主体。但webtest界面似乎没有任何方法可以直接设置Post请求的主体;您可以添加键和值,但不能将请求设置为隐式序列化的对象,或者甚至只是普通字符串。
那么你如何在网络测试中发布Json?
答案 0 :(得分:6)
根据您的需要,有两种选择,可能更多。这两种机制都具有相同的属性集来设置URL和许多其他字段。
在Web测试编辑器中,您可以添加Web服务请求(Insert web service request
上下文菜单命令),然后将其设置为StringBody
字段。字符串主体的内容可以包含上下文参数。
普通请求的上下文菜单包含Add file upload parameter
。
答案 1 :(得分:0)
经过一段时间的搜索,我发现了一个解决方案,允许您在Web测试的发布请求中通过JSON对象发送消息。
1)创建一个Web测试性能插件:https://docs.microsoft.com/en-us/visualstudio/test/how-to-create-a-web-performance-test-plug-in?view=vs-2017
2)将以下代码添加到类中(不要忘记构建):
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace WebTests.RequestPlugins
{
[DisplayName("Add JSON content to Body")]
[Description("HEY! Tip! Uglify your JSON before pasting.")]
public class AddJsonContentToBody : WebTestRequestPlugin
{
[Description("Assigns the HTTP Body payload to the content provided and sets the content type to application/json")]
public string JsonContent { get; set; }
public override void PreRequest(object sender, PreRequestEventArgs e)
{
var stringBody = new StringHttpBody();
stringBody.BodyString = JsonContent;
stringBody.ContentType = "application/json";
e.Request.Body = stringBody;
}
}
3)在您的请求URL上,右键单击并选择“添加请求插件”,然后您应该会看到新的插件。
4)将您的json丑化以便能够粘贴。
5)运行测试
代码源:https://ericflemingblog.wordpress.com/2016/01/21/helpful-custom-request-plugins-for-web-tests/
答案 2 :(得分:0)