안녕하세요.
이번에 처음 nGrinder를 접하게되었는데요, Controller, Agent 등 모두 설치하고 시험 테스트까지 마쳤는데, 스크립트 작성에 어려움이 있어서 문의 드립니다. (jython으로 스크립팅 중입니다.) 다름이 아니라, 로그인에 대한 성능 테스트를 진행하고자하는데, 테스트 데이터를 txt 파일아나 엑셀 파일로 로드하여 처리하고 싶습니다. 그런데, 방법을 잘 모르겠습니다. 샘플 소스가 있다면 좋겠는데, 찾아봐도 못 찾겠습니다. <시나리오> 1. 테스트 홈페이지 접속 2. 테스트 대상 계정을 account.txt 파일에서 하나씩 로드 (100명) 3. 한번에 로그인 시도 대충 이런 시나리오인데 처음 접하다 보니 어렵네요. 1. 외부 파일에서(.txt)에서 한 줄씩 계정 로드하는 스크립트 2. 랑데뷰 포인트에서 한번에 테스트 할 수 있는 스크립트 2가지 정도가 질문 요약입니다. 바쁘신데 회신 해주시면 정말 감사하겠습니다. |
Administrator
|
http://www.cubrid.org/wiki_ngrinder/entry/how-to-use-resources 를 참조하시면 되겠습니다. 일단 __init__ 구문에서 파일을 로드한다음에 배열에 라인별로 넣어두십시오.
그 다음에 __call__ 메소드에서 로그인 시도하세요. 랑데뷰는 grinder 에서 제공하는 barrier 라는 것을 사용하시면 됩니다. 그럼 2014년 3월 5일 오후 4:37, mulder [via ngrinder] <[hidden email]>님이 작성: 안녕하세요. |
답변 감사합니다.
검색을 제대로 못했었네요. ㅠ 랑데뷰 포인트의 경우 Sync를 사용하면 된다라고 들었는데, 말씀해주신 barrier 한번 사용해보겠습니다. 좀 더 진행해보고 문의사항 있으면 게시판에 올리겠습니다. 아직 초보라서 문의 많이 드릴 예정입니다. ^^ 바쁘실텐데 감사드립니다. |
This post was updated on .
In reply to this post by junoyoon
알려주신 부분으로 스크립트 작성하려는데 막히는 부분이 있습니다.
오전에 문의 드리고 일부 작성해서 다시 등록합니다. array에 담고 열기까지 된것 같은데, 아래 보시면 array에 저장된 url을 하나하나 실행하려고 하니 오류가 발생하네요. 그리고, ['www.google.com?test=1\\n\n', 'www.google.com?test=2\\n\n', 'www.google.com?test=3'] 이런식으로 array에 담아지구요. ㅠ # -*- coding:utf-8 -*- from net.grinder.script import Test from net.grinder.script.Grinder import grinder from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair, Cookie, CookieModule, CookiePolicyHandler control = HTTPPluginControl.getConnectionDefaults() connectionDefaults = HTTPPluginControl.getConnectionDefaults() httpUtilities = HTTPPluginControl.getHTTPUtilities() test1 = Test(1, "Test1") test_host = "http://www.google.com" request1 = test1.wrap(HTTPRequest(url=test_host)) test_query_file = "D:\url.txt" class TestRunner: def __init__(self): self.urlCount = 0 self.urlList = [] try: fpQuery = open(test_query_file, "r") for line in fpQuery: self.urlList.append(line) except: print("error") finally: print(self.urlList) def __call__(self): for line in self.urlList: result = request1.GET(line) if result.getStatusCode() == 200 : grinder.statistics.forLastTest.success = 1 elif result.getStatusCode() in (301, 302) : grinder.logger.warn("Warning. The response may not be correct. The response code was %d." % result.getStatusCode()) grinder.statistics.forLastTest.success = 1 else : grinder.statistics.forLastTest.success = 0 url.txt에는 google.com?test=1 google.com?test=2 google.com?test=3 이렇게 들어가있고, url.txt 파일에서 각각의 url을 읽어서 실행할 부분에서 각각 도메인별로 실행을 하려고 하는 의도입니다. 보시고 소스상에 문제점이 무엇인지 한번 확인 부탁 드립니다. 감사합니다. |
Administrator
|
죄송합니다만 해당 부분은 기본적인 파이선 사용법을 익히는 것만으로 해결되는 부분이라, 따로 가이드 드리기 어려울 것 같습니다. 만약 밀착 지원을 원하신다면, 저희가 적절한 분을 소개 시켜드릴 수 있을 것 같습니다. 필요하시다면 알려주시기 바랍니다.
2014년 3월 6일 오전 11:31, mulder [via ngrinder] <[hidden email]>님이 작성: 알려주신 부분으로 스크립트 작성하려는데 막히는 부분이 있습니다. |
Free forum by Nabble | Edit this page |