README.md
Protractor-Perf
Just like Protractor is the end to end test case runner for AngularJS to check for functional regressions, this project is a way check for performance regressions while reusing the same test cases.
Protractor가 기능적 회귀 (functional regressions) 를 검사하는 end to end test case runner 인 것처럼, 이 프로젝트는 동일한 테스트 케이스를 재사용하면서 performance regressions를 확인하는 방법입니다.
Usage
Install protractor-perf using npm install -g protractor-perf
.
npm install -g protractor-perf를 사용해 protractor-perf 를 설치하세요.
Protractor test cases are re-used to run scenarios where performance needs to be measured. Protractor-perf can be used just like protractor, just that the test-cases need to be instrumented to indicated when to start and stop measuring performance.
Protractor 테스트 케이스는 performance을 측정해야하는 시나리오를 실행하기 위해 재사용됩니다. Protractor-perf는 Protractor처럼 사용할 수 있습니다. performance를 측정하기 위해 시작점과 끝나는 지점을 테스트 케이스 내에 정해주고 난 후 측정할 수 있습니다
Protractor is usually invoked using $ protractor conf.js
. Use $ protractor-perf conf.js
instead to start measuring performance.
Protractor는 일반적으로 $ protractor conf.js.를 사용하여 호출됩니다. $ protractor-perf conf.js를 사용하여 성능 측정을 시작하십시오.
The config file is the same configuration file used for protractor tests.
config 파일은 Protractor 테스트에 사용되는 것과 동일한 구성 파일입니다.
Note: If you run selenium using protractor's webdriver-manager
, you would need to specify seleniumPort
and selenium
keys in the config file, to explicitly specify the port on which the selenium server will run. This port will also be picked up by protractor-perf
. See ./test/conf.js
as an example.
참고 : Protractor의 webdriver-manager를 사용하여 selenium을 실행하는 경우 seleniumPort와 selenium keys를 config 파일에 명시합니다. 이렇게 함으로서 셀레니엄 서버가 돌아갈 포트를 특정할 수 있습니다. ./test/conf.js 의 예를 참조하십시오.
When the instrumented test cases are run using protractor, the code related to performance is a no-op. This way, adding instrumentation does not break your ability to run protractor to just test for functionality.
퍼포먼스 테스팅이 구현 된 테스트 케이스가 Protractor를 사용하여 실행될 때 성능과 관련된 코드는 작동하지 않습니다. 이런 방법으로 이 기능을 추가해도 Protractor를 작동시켜 functionalityㄹ으 테스트하는 기능은 영향을 받지 않습니다.
Instrumenting the test cases
The test case need to specify when to start and stop measuring performance metrics for a certain scenario. The following code is an example of a test case, with perf code snippets added.
테스트 케이스에 특정 시나리오에 대한 performance metrics 측정을 시작하고 중지 할 시기를 지정합니다. 다음 코드는 perf 코드 snippets이 추가 된 테스트 사례의 예입니다.
var PerfRunner = require('..');
describe('angularjs homepage todo list', function() {
var perfRunner = new PerfRunner(protractor, browser);
it('should add a todo', function() {
browser.get('http://www.angularjs.org');
perfRunner.start();
element(by.model('todoList.todoText')).sendKeys('write a protractor test');
element(by.css('[value="add"]')).click();
perfRunner.stop();
if (perfRunner.isEnabled) {
expect(perfRunner.getStats('meanFrameTime')).toBeLessThan(60);
};
var todoList = element.all(by.repeater('todo in todoList.todos'));
expect(todoList.count()).toEqual(3);
expect(todoList.get(2).getText()).toEqual('write a protractor test');
});
});
The four statements to note are
메모 할 4 가지 문구는 다음과 같습니다.
- Initialize the Perf monitor using
new ProtractorPerf(protractor, browser)
- To start measuring the perf, use
perf.start()
- Once the scenario that you would like to perf test completes, use
perf.stop()
- Finally, use
perf.getStats('statName')
inexpect
statements to ensure that all the performance metrics are within the acceptable range.
The perf.isEnabled
is needed to ensure that perf metrics are not tested when the test case is run using protractor
directly.
1. new ProtractorPerf (Protractor, browser)를 사용하여 Perf 모니터를 초기화하십시오.
2. perf를 측정하려면 perf.start ()를 사용하십시오.
3. perf 테스트를 수행하려는 시나리오가 완료되면 perf.stop () 를 사용하십시오.
4. 마지막으로 expect 문에서 perf.getStats ( 'statName')를 사용하여 모든 performance metrics이 허용되는 범위 내에 있는지 확인하십시오.
perf.isEnabled는 Protractor를 사용하여 테스트 케이스를 직접 실행할 때 perf metrics을 테스트하지 않도록하기 위해 필요합니다.
Metrics measured
protractor-perf
is based on browser-perf. browser-perf
measures the metrics that can be tested for regressions. Look at browser-perf's wiki page for more information about the project.
protractor-perf는 browser-perf를 기반으로합니다. browser-perf는 regressions 테스트 할 수있는 metrics을 측정합니다. 프로젝트에 대한 자세한 내용은 browser-perf의 wiki 페이지를 참조하십시오.
Grunt Integration
Invoke protractor-perf
from a GruntFile as below
아래와 같이 GruntFile 에서 protractor-perf를 Invoke 시키세요.
module.exports = function(grunt) {
var protractorperf = require('protractor-perf');
grunt.registerTask('protractorperf', function() {
var donerun = this.async();
// Optional config Object that overwrites properties of conf.js.
// Useful to set property values from grunt.option()
var argv = {
selenium: 'http://localhost:54321/wd/hub',
seleniumPort: 54321
};
protractorperf.run('./merci-perf-conf.js', donerun, argv); // config file
});
grunt.registerTask('run', ['protractorperf']);
};
'TDD Project > Protractor_Cucumber' 카테고리의 다른 글
[Protractor] Asynchronous Testing with Protractor’s ControlFlow (0) | 2017.05.11 |
---|---|
[Cucumber] Automation Testing Using Cucumber Tool and Selenium (0) | 2017.04.25 |
Protractor Memo - Javascript sort() case insensitive etc. (0) | 2017.04.13 |
Protractor Memo - treat array, sorting check (0) | 2017.04.12 |
Protractor For Beginners Part 1 (0) | 2017.04.07 |