2017-12-04 1 views
0

자동화 된 UI 테스트에 CasperJS을 사용하고 있습니다. 필자는 POC의 일종의 무작위 데이터로 기본 UI 테스트 및 유효성 검사를 수행했습니다. 이 자동화는 웹 서버를 시작하고 SQL 파일에서 MySQL 데이터를로드하고 CasperJS 테스트 케이스를 시작하고 웹 서버를 중지하고 로그 파일을 확인하는 bash 스크립트를 사용하여 설정했습니다.잘 알려진 데이터 상태 (mysql 데이터베이스)를 가진 UI 테스트 (casperjs)

이제 MySQL에 저장된 데이터의 알려진 상태로 테스트를 시작하겠습니다. 그래서 나는 알려진 데이타베이스 상태를 가진 상세한 필드 정보를 가지고리스트 데이터와 폼 데이터를 테스트 할 수있다. 데이터베이스의 데이터 상태를 잠시 어떻게 알 수 있습니까?

1) 모든 데이터에 대한 상태 및 세부 정보가있는 미리 채워진 JSON 덤프 파일을 사용해야합니까?

2) 웹 서비스 API를 사용해야하나요? (웹 서비스 API는 웹 페이지에서 데이터를 표시/저장/삭제하는 데 사용됩니다.)

예를 들어 보겠습니다. Users에 5 명의 사용자가 있습니다. 이제 홈 페이지를 열면 대략적인 세부 사항이있는 5 명의 사용자가 표시됩니다. 사용자 목록에서 레코드를 클릭하면 해당 사용자에 대한 자세한 정보가있는 양식이 표시됩니다. 웹 페이지는 웹 응용 프로그램에 user_id를 사용하여 사용자에 대한 세부 정보를 요청하여 자세한 사용자 데이터를 양식에 표시합니다. 이제 해당 양식의 모든 데이터가 올바르게 채워 졌는지 확인하고 싶습니다. 그래서 다음 단계에서 JSON 덤프 파일의 내용을 읽거나 웹 서비스 API (웹 페이지처럼)를 사용해야합니까?

온라인으로이 문제를 검색하면 MYSQL HTTP plugin입니다. 이것도 고려해야할까요? 그리고 그것이 얼마나 안전할까요? (이 플러그인은 프로덕션을위한 것이 아니라는 것을 문서에서 알 수 있습니다. :)

답변

0

이와 같은 주요 질문에 대해서는 데이터베이스 연결 문자열을 testing database으로 변경합니다. 클론입니다).

테스트를 실행하기 전에 bash 스크립트를 사용하여 연결 문자열 (파일 복사?)을 자동으로 변경하십시오. 완료되면 다시 변경하십시오.

테스트 데이터베이스는 dev/live databsae의 직접 복제본이지만 필요한 테스트 데이터 만 있습니다. 단점은 DEV/LIVE와 동기화 된 스키마를 유지해야한다는 것입니다.

또 다른 포인트는 테스트가 상태 (게시물)를 변경하는 경우입니다. 그렇다면 테스트 데이터가 동기화되지 않을 수 있습니다. 한 가지 방법은 외래 키를 삭제하고 데이터를 잘라내어 덤프 파일에로드하는 것입니다.

HTH

+0

예, 테스트 데이터베이스를 사용하고 있습니다. 내가 한 가지 할 수있는, 나는 테스트 db의 json 파일에 데이터를 덤프 할 수 있고 UI 테스트를 시작하기 전에 테스트 케이스가 검증에 필요할 때 데이터에 액세스 할 수 있도록 json 덤프 된 파일을 메모리에로드 할 수있다. – rsudip90

+0

그리고 서버에 데이터를 게시하면 테스트 데이터가 동기화되지 않을 수도 있습니다. 그러나 현재 API가 상태 성공 또는 실패로 응답을 보내고 있기 때문에 걱정할 필요가 없습니다. – rsudip90

관련 문제