Testuję w systemie Windows, próbując symulować żądania POST (z różnymi zmiennymi formularza) do testowania obciążenia. Próbowałem wszystkich rodzajów oprogramowania do testowania obciążenia, ale nie udało mi się go uruchomić.Jak symulować żądanie POST?
Dla żądań GET, wiem, że mogę po prostu umieścić parametry za url
http://www.example.com?id=yyy&t=zzz
Ale jak mogę symulować żądania POST?
Mam klienta REST chrome, ale nie wiem, co umieścić w nagłówkach i danych.
Oto, co starałem dotąd:
class Program
{
static void Main(string[] args)
{
string viewstateid = "/wEPDwUKLTY3NjEyMzE4NWRkK4DxZpjTmZg/RGCS2s13vkEWmwWiEE6v+XrYoWVuxeg=";
string eventid ="/wEdAAoSjOGPZYAAeKGjkZOhQ+aKHfOfr91+YI2XVhP1c/pGR96FYSfo5JULYVvfQ61/Uw4pNGL67qcLo0vAZTfi8zd7jfuWZzOhk6V/gFA/hhJU2fx7PQKw+iST15SoB1LqJ4UpaL7786dp6laCBt9ubQNrfzeO+rrTK8MaO2KNxeFaDhrQ0hxxv9lBZnM1SHtoODXsNUYlOeO/kawcn9fX0BpWN7Brh7U3BIQTZwMNkOzIy+rv+Sj8XkEEA9HaBwlaEjg=";
string username = "user1";
string password = "ttee";
string loginbutton = "Log In";
string URLAuth = "http://localhost/login.aspx";
string postString = string.Format("VIEWSTATE={0}&EVENTVALIDATION={1}&LoginUser_UserName={2}&LoginUser_Password={3}&LoginUser_LoginButton={4}",viewstateid,eventid, username, password,realm,otp,loginbutton);
const string contentType = "application/x-www-form-urlencoded";
System.Net.ServicePointManager.Expect100Continue = false;
CookieContainer cookies = new CookieContainer();
HttpWebRequest webRequest = WebRequest.Create(URLAuth) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = contentType;
webRequest.CookieContainer = cookies;
webRequest.ContentLength = postString.Length;
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1";
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webRequest.Referer = "http://localhost/login.aspx";
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();
StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();
Console.WriteLine(responseData);
responseReader.Close();
webRequest.GetResponse().Close();
}
}
W jaki sposób mogę opublikować ten post na wewnętrznym działającym serwerze programistycznym? – stryba
Nie jestem pewien, czy potrafisz. Jeśli chcesz przetestować programistyczny interfejs API, sugerowałbym użycie aplikacji chrome Postman lub jeśli chcesz przetestować swoje API automatycznie, będziesz musiał użyć jakiegoś narzędzia do automatyzacji (na przykład dla PHP możesz użyć Behat). –
Dokładnie mój punkt. – stryba