2017-01-10 2 views
0

나는 수천 개의 HTTP 게시물 요청을 보내는 애플리케이션을 개발 중입니다. 필 드러의 도움을 받아 모든 응답을 녹음하고 스텁으로 사용하겠습니다. 예를 들어많은 게시물 요청을위한 Fiddler AutoResponder

은 (단순에 대한 제품 가격 = 제품 일련 가정 할 수 있습니다) : 응답 저장

  1. 전송 요청, 신체 <productId>1</productId>
  2. 얻을 실제 응답, 신체 <productprice>1</productprice>
  3. 을 (헤더 + 몸) 이전 단계를 형성 로컬 저장 장치에 에 대한 사전 [1,"HTTP/1.1 200 OK <productprice>1</productprice>"]의 예입니다. 바디 <productId>2</productId>
  4. 송신 요청, 본체 로컬 스토리지에서 <productId>1</productId>
  5. 부하 응답 (이 응답을 저장하기 때문에, 패턴 body contains <productId>1</productId> 일치 다음 요청은 우리의 로컬 스토리지 에서 반응한다)과 HTTP/1.1 200 OK <productprice>1</productprice>
  6. 송신 요청을 반환
  7. 는 몸 실제 응답을 <productprice>5</productprice>
  8. 응답 저장 (헤더 + 몸) 일부 사전 01,233,763,346,532,237,662에 예를 들어, 로컬 스토리지에서 이전 단계를 형성
  9. ...

어떻게에 대한 Fiddler을 구성하는?

세부 사항은 :

이미 1000 개 실제 POST 요청을 캡처하고 나는 그들의 도움으로 내 응용 프로그램을 디버깅 할 수 있습니다.

각 요청/응답은 독특하고 같은 일반적인 외모에 있습니다

요청

POST https://myurl HTTP/1.1 
Authorization: Bearer xxx 
Content-Type: application/soap+xml; charset=utf-8; action="GetList" 
Host: myurl.net 
Content-Length: 358 
Expect: 100-continue 
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 
    <s:Body> 
     <catalogRequest xmlns="https://myurl"> 
      <id xmlns="">1</id> 
     </catalogRequest> 
    </s:Body> 
</s:Envelope> 

내가 Autoresponder에 세션을 캡처 끌려 때 나는 Autoresponder을 시도했지만

<?xml version="1.0" encoding="UTF-8"?> 
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="https://myurl"> 
    <env:Body> 
     <ns1:catalogResponse> 
      <result> 
       <id>1</id> 
       <name>some text</name> 
       <price>109.99</price> 
       ... big xml ... 
       <status>1</status> 
      </result> 
     </ns1:catalogResponse> 
    </env:Body> 
</env:Envelope> 

응답 그들은 다음과 같은 규칙으로 변환되었습니다 : METHOD:POST EXACT: -이 규칙은 POST 본문을 사용하지 않습니다. 수동으로 1000 규칙을 사용하여 변경할 수 없습니다 URLWithBody 규칙

Fiddler 스크립트를 만들 수는 있지만이 스크립트가 매핑으로 사용하도록 캡처 한 요청/응답을 저장하는 방법을 모르겠습니다.

답변

0

작은 연구 후에 나는 응답을 기록하고 미래에 스텁으로 사용하는 방법을 발견했습니다. 필자는 바이올린 스크립트를 사용하도록 권장합니다. BeforeRequest를 들어 스크립트

의 여기 예 :

var body = session.requestBodyBytes; 
var id = GetIdFromBody(body);// code for getting id from request body 
session.Reply = id; 

AfterResponse 경우 :

var body = session.GetRequestBodyAsString(); 
var id = GetIdFromRespBody(body);// code for getting id from response body 
session.SaveResponse(id);