naver / guitar

76 stars 18 forks source link

Export 된 결과물에 대한 문의 #342

Open ChoiManKi opened 7 years ago

ChoiManKi commented 7 years ago

안녕하세요~!

문의드릴게 하나가 있는데, 브라우저에서 Export 된 결과물인 엑셀 or 차트 (이미지) 에 대해서도 GUITAR 로 자동화테스트를 할 수있는지 궁금합니다.

현재 브라우저는 자동화를 테스트를 진행중이긴한데, 출력된 결과물에 대해서는 수동테스트를 진행중입니다. 이부분에 대해서도 자동화 테스트가 가능할까요??

ssmmhh commented 7 years ago

네 가능합니다.

웹브라우저 외에 다른 형태의 프로그램들은 "프로세스선택" 이라는 명령으로 지정하여 이미지 방식으로 테스트가 가능합니다.

위에 필터 항목에 "프로세스선택" 으로 검색하여 유사 관련된 답변 내용을 참고하시기 바랍니다.

엑설의 경우라면 EXCEL.EXE 을 프로세스선택하여 작업하시면 될것 같습니다.

ChoiManKi commented 7 years ago

지금 몇일째..."프로세스선택"으로 검색 또는 사용설명서참고해서 진행을 하고 있습니다. 3개의 문의사항이 가 있습니다.

일단 제가 하려는 테스트시나리오는 0

  1. name2 컬럼헤더를 더블클릭해서 정렬한다.
  2. down 버튼을 클릭해 엑셀을 다운받고 실행한다.
  3. 엑셀실행시 브라우저에서 정렬한대로 엑셀에도 정렬이 제대로 적용되어 있는지 확인한다.

이며, GUITAR로 작성한 시나리오는 아래와 같습니다. 1

첫번째 질문은 "down버튼을 클릭한다." 와 "aaa엑셀을 확인한다." 절차진행시 가끔씩 진행이 안되는 경우가 있습니다. <down버튼을 클릭한다. 실패> a down <aaa엑셀을 확인한다. 실패> b <정상처리> c

처음에는 헤당 테스트브라우저가 실행되어있어서 안되는 걸 인지했는데, 업무좀 하다가 다시 실행하는데, 테스트브라우저가 실행되어 있지 않은데도 안되는 현상이 발생합니다. 정확한 원인을 모르겠습니다..

두번째 질문은 IE 를 CHORME 로 변경후 테스트시 크롬은 실행되나, URL 입력되는 다음단계가 진행되지 않습니다. 왜 그런지 모르겠습니다...ㅠ_ㅠ

마지막 질문은 위와 같이 프로세스선택 부분을 작성해보았는데, 여기서 더 보완할 점이 있는지 궁금합니다. 혹시 무조건 PASS처리가 되는 것 같아서 기존에 정상 정렬이 아닌, 임의로 정렬 후 aaaa엑셀 이미지를 저장후 정상 시나리오에 마지막부분을 aaaa엑셀을 확인한다 식으로 FAIL 이 떨어지는지 확인을 해보았습니다.

그래도 처음하는 부분이고, 많이 부족한 것 같아서 이렇게 추가문의드립니다+_+

ssmmhh commented 7 years ago

답변드립니다.

  1. 이미지를 찾지 못하는 경우 실제 캡쳐된 이미지와 화면에 나타난 이미지가 틀린 경우일것 입니다. https://github.com/naver/guitar/issues/70 글을 참조하여 실제 이미지들 (원본, 대상)을 그림판등에서 확대해 보세요. 틀려지는 부분의 원인을 찾아 이를 해결하시면 됩니다. 우선 down 이미지를 외부버튼box를 제외한 글씨 부분만 줄여 보시는것도 방법입니다. 보내주신 테이블이나 버튼의 경우 윈도우 크기에 따라 가변적으로 테이블 크기가 변하도록 css가 작성된 경우 브라우저 윈도우 크기에 따라 미세하게 캡쳐시점과 달리 전체 테이블이나 버튼의 크기가 달라질수 있음으로 box를 제외하고 캡쳐하시는것이 좋습니다.

  2. 프로세스에서 이미지 찾기

    문의 주신 aaaa엑셍의 경우 프로세스선택방법의 문제 입니다. 프로세스선택의 경우 같은 이름으로 여러 프로세스가 동시에 실행중인 경우, 사용자가 테스트 대상의 프로세스를 명확하게 찾아 주어야 합니다.
    https://github.com/naver/guitar/issues/162 를 참조하여 프로세스 선택뒤에 항상 "선택" 명령으로 명확하게 윈도우를 지정하시기 바랍니다. 보내주신 내용으로라면 아래와 같이 해주시면 명확하게 해당 값이 나와 있는 윈도우로 작업대상을 지정할수 있습니다. (선택 명령으로 이미 확인까지 했음으로 추가 확인작업은 필요하지 않습니다.)

--

"EXCEL" 프로세스선택 aaaa엑셀 선택

  1. 최신버전 크롬에서 주소입력 실패

    최신버전으로 업데이트 되면서 주소창의 이미지가 달라진 경우 같습니다. 아래 방법으로 해결하시면 될것 같습니다.

    https://github.com/naver/guitar/issues/96

테스트 초입 부분에 불필요한 엑셀이 실행중이라면 먼저 종료해 주시는 작업이 선행되어야 할것 같습니다.

-- "$엑셀종료=ProcessClose('excel.exe')" 계산한다.

그리고 테스트 마지막 부분에는 테스트에 사용된 다시 엑셀과 브라우저를 종료해 주는 부분도 필요 합니다.

ChoiManKi commented 7 years ago

일단 바쁘신와중에 자세한 답변남겨주셔서 감사합니다~!!

하루정도 해봤는데, 아직 문의사항이 있어서 이렇게 추가문의드립니다.

1번 문의사항 같은 경우 답변해주신대로 외부버튼box를 제외한 글씨 부분만 캡쳐해서 해결했습니다.

2번 문의사항에서 Export 출력물인 aaa 엑셀에 포커스를 가게하는 것 까지는 이해했습니다.

물론 정상처리가 되는데, 지금 이스크립트가 정상적으로 체크를 하는지 확인하기 위해 추가로 잘못된 스크립트를 생성했습니다.

"name2컬럼헤더를 더블클릭한다." 스크립트 부분을 제거해 정렬을 안한 엑셀파일을 Export 한 후 FAIL 처리를 하는지를 확인해보았습니다.

현재 작성한 스크립트입니다. 111

이렇게 리포터가 생성됩니다. 0

첫번째 현재 엑셀화면을 나타내고 1

잘못된 부분을 매칭해서 보여줘야하는데, 이렇게 현재화면이 리포터에 출력됩니다. 2

해당 테스트시나리오는 Export 된 aaa엑셀안에 데이터가 blue / blue / blue / red / red /red / red 순으로 정렬이 적용되었는지를 확인하는 것인데, 현재 작성한 스크립트에서는 정확히 체크를 못하는 것 같습니다.

현재 "aaa엑셀을 확인한다" 또는 "aaaa엑셀을 확인한다" 부분의 이미지는 이렇게 되어있는데, 엑셀전체를 포커스두고 캡처해야 할까요?? aaa

<추가문의사항>

엑셀 테스트는 위에 문의사항만 해결되면 잘 될 것 같습니다. 추가문의드릴 게, 퓨전차트 같은 JPG, PNG, PDF 확장자로 출력된 프로그램을 선택하는 방법을 알 수 있을까요??

검색능력이 부족한지, 사용가이드와 이슈를 찾아봐도 나오지가 않네요..ㅠ_ㅠ

또 하나 더있는데, 해당샘플을 멀티브라우저로 테스트해야합니다. (IE8, 9, 10, 11 / 크롬 / 파이어폭스 등)

스크립트관리를 한 txt 에 "현재 브라우저를 종료한다." 이후 타브라우저를 실행해서 다시 반복해야 하는 건가요?

아님 브라우저별로 txt 를 만들어 "현재 브라우저를 종료한다." 이후 예를들어서 크롬엑셀1.txt 을 실행한다. 이런식으로 트리로 관리를 해야하나요?

트리로 권하는 내용을 많이 보긴했는데, 이렇게 하나의 스크립트로 멀티브라우저를 테스트할 때는 어떤걸 사용해야하는지 궁금합니다!+_+

ssmmhh commented 7 years ago

1. 보내 주신 내용으로 보면 원하시는데로 오류를 찾아 주며, 정상 작동된것입니다.

창을 이동하기 위해 "aaa엑셀"화면이 있는것을 찾았는데 해당 이미지의 엑셀 화면이 없으니 "선택" 부분에서 오류가 발생된것입니다. (즉, 소트된aaa가 없다는 것입니다.) 리포트화면에서도 해당 화면이 없는것을 보여주고 있습니다.

"선택" 명령에 "확인" 기능까지 같이 의미를 부여해서 이해하기 어려우신것 같은데 아래와 같이 선택과 확인을 각각 분리 하시면 좀더 명확하긴하지만 효율적인 면에서는 "선택" 하나로 하는게 좋습니다.

예)

"엑셀기본화면A셀" 은 추가로 이미지를 캡쳐해야 하며, 모든내용에 관계없이 엑셀메뉴등 공통적으로 나타나는 화면을 하나 골라 캡쳐하시면 됩니다.


execel 프로세스선택한다.

엑셀기본화면A셀 선택한다.

aaa엑셀을 확인한다.

  1. JPG, PNG, PDF 이미지가 시스템 상에 열릴때에는 설치된 PC의 연결된 뷰어프로그램에 따라 프로세스명(프로그램명)이 달라집니다. 원하시는 프로그램이 있으시면 해당 프로그램을 설치하고 해당 뷰어의 exe파일명으로 선택해서 작업하시면 됩니다.

  2. 여러 브라우저로 동일한 스크립트를 테스트하는것은 아래 샘플 스크립트를 참고하시면 될것 같습니다. 13_브라우저.txt

그리고 브라우저가 아닌 참고로 "프로세스" 로 작업되는 것들은 "종료"가 아닌 "$엑셀종료=ProcessClose('excel.exe')" 계산한다. 등으로 종료해 주셔야 합니다.