我的QA框中有一个Web服务,它接受并处理XML字符串,发送电子邮件然后返回另一个XML字符串。为了测试它,我希望通过使控制台应用程序通过向它发送XML来调用它来重载它,在控制台应用程序中进行循环,以便在一次拍摄中发送1,000次。我在互联网上看到了很多样本,但我无法让它们发挥作用。
这就是我所拥有的:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
namespace WSStressTest
{
class Program
{
static void Main()
{
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "<?xml version='1.0'?><ROOT><SOMETHING></SOMETHING></ROOT>";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://url:1111/WebService.asmx/ProcessWebService");
request.Method = "POST";
byte[] data = encoding.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
//Console.ReadLine();
}
}
}
我总是在HttpWebResponse中遇到500错误。现在,查看代码我唯一能想到的就是POST的参数名称。我的意思是,如果我做一个表格
<form method="post" action="http://url:1111/WebService.asmx/ProcessWebService">
<input type="text" name="sXML" /> <input type="submit" value="submit" />
</form>
将xml放入输入并提交将起作用。但我将数据发布到网络服务 sXML 。如何在控制台应用程序sXML中命名xml帖子?这是我缺少的还是我的代码中还有其他错误?
其他问题:让这个运行1000次的最佳方法是什么。我想把电话放在一段时间内<1000。有更好的方法吗?
谢谢!