2013-03-04 2 views
1

내부 사이트에 대한 캐스퍼 테스트를 실행하려고합니다. 당신은별로 볼 수있는 사전 프로덕션 환경에 그것의 실행은, 코드는 지금까지casperjs 내부 사이트 테스트

var casper = require('casper').create({ 
       verbose: true, 
       loglevel:"debug" 
       }); 

    // listening to a custom event 
    casper.on('page.loaded', function() { 
       this.echo('The page title is ' + this.getTitle()); 
       this.echo('value is: '+ this.getElementAttribute 
         ('input[id="edit-capture-amount"]', 
         'value')); 
    }); 

    casper.start('https://preprod.uk.systemtest.com', function() { 
       this.echo(this.getTitle()); 
       this.capture('frontpage.png'); 
       // emitting a custom event 
       this.emit('age.loaded.loaded');  
    }); 

    casper.run(); 

하지만 내 문제는 주소에 도달 할 수없는 것입니다. 캡처에는 빈 페이지가 표시됩니다. 내가 뭘 잘못하고 있는지 모르겠다. 나는 cnn과 google URL로 코드를 검사했다. 제목과 스크린 캡쳐가 잘 동작한다. 내부 사이트에서 작동하게하는 방법을 모릅니다.

답변

1

캐스퍼가 실행되는 컴퓨터에서 preprod.uk.systemtest.com에 연결할 수 있습니까? 예를 들어 ping 또는 wget을 사용합니다.

컴퓨터와 preprod 서버 사이에 프록시가 있습니까? 또는 시스템이 프리로 드 서버에 사용해서는 안되는 프록시를 통과하도록 구성되어 있습니까?

캐스퍼 코드는 괜찮은 것 같습니다.

나는 이것이 코멘트 여야한다는 것을 알고 있지만 코멘트를 게시할만한 충분한 평판이 없다.

+0

preprod 꽤 갇혀 해당 서버에 권한이있는 유일한 기계가이 테스트를 실행하는 워크 스테이션입니다. 기계가 동일한 네트워크 안에 있으므로 프록시가 없습니다. 캐스퍼가 다른 IP 주소를 사용하여 웹 주소에 도달했는지 확신 할 수없는 경우 해당 주소가 ngnix 서버에 흰색으로 나열되어 있어야합니다. –

+0

워크 스테이션이 preprod 서버와 동일한 네트워크에 있으면 IP 주소가 무엇인지 쉽게 추측 할 수 있습니다. 캐스퍼를 단순히 일반적인 웹 브라우저로 간주하십시오. wget으로 페이지에 접근 할 수 있습니까? – moins52

+0

wget에서 연결할 수 있다고 말합니다. 출력에 붙여 넣습니다. –

2

나는 똑같은 문제가있었습니다. 내 브라우저에서 URL을 해결할 수 있지만 capserjs 수 없습니다. 웹 페이지에 대한 모든 정보는 about::blank입니다.

덧붙여서 --ignore-ssl-errors=yes은 매력처럼 작동했습니다!

casperjs mytestjs //didn't work 

capserjs --ignore-ssl-errors=yes mytestjs //worked perfect! 
0

는 지금까지 CasperJs 테스트는 로컬 호스트에서 실행되므로, 사용자 정의 도메인/하위 도메인/호스트를 테스트하기 위해, 어떤 헤더를 정의 할 필요가있다.

HOST 헤더 만 전달할 때 몇 가지 문제가 발생했습니다. 예를 들어 스냅 샷이 올바르게 처리되지 않은 경우입니다.

나는이 더 헤더를 추가하고 지금 내 테스트가 제대로 실행

casper.on('started', function() { 
     var testHost = 'preprod.uk.systemtest.com'; 

     this.page.customHeaders = { 
      'HOST': testHost, 
      'HTTP_HOST': testHost, 
      'SERVER_NAME': testHost 
     }; 
    }); 

    var testing_url: 'http://localhost:8000/app_test.php'; 
    casper.start(_testing_url, function() { 
    this.echo('I am using symfony, so this should have to show the homepage for the domain: preprod.uk.systemtest.com'); 
    this.echo('An the snapshot is also working'); 
    this.capture('casper_capture.png'); 
}