public class HelloWorld
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

 

이 코드를 실행하면 뭐가 나올까?

 

Console 창에 Hello World! 라고 나온다.

 

혹시 Hello World!를 보고 나도 모르게 웃음이 나온 기억이 있다면, 혹은 지금 그랬다면

 

당신은 좋은 개발자가 될 것이다.

WebUI 테스트 자동화 구성 - Selenium, gitlab, jenkins, TestNG, TestLink, 


TestCase - Resource 생성/수정/삭제/조회


어려운점 - 1. 생성/수정/삭제/조회에 대한 기댓값, 결과값 판단의 기준

    2. testng로 만든 테스트 코드가 젠킨스 빌드시에  실행이 안되던 문제는 testng.xml 파일을 만들어주지 않아서 그랬다. 

    3. 테스트링크와 각각의 테스트 케이스 연동할 때 처음이라 판단이 어려웠음 

-  TestLink 케이스에 Test Program(커스텀 필드로 설정된 부분)에  testng-result.xml에서 확인하면 보이는       ClassName#test-methodName으로 명명해주면 된다.  (ex com.test.Test클래스의 T01 메소드라면, TestLink   TestProgram에 com.test.Test#T01로 명명해주면 인식한다.)

    4. ChromeDriver에서 계속 에러가 나던 문제. 윈도우에서 테스트 할때는 문제가 없었는데 이걸 리눅스 서버로 옮겨서 하려니          문제가 발생 

      4 - 1. Chrome을 창이없이 사용할 수 있도록 해줘야 한다. 이는 ChromeOption에서 "--headless"를 지정해주면 이것이 창을                 띄우진 않지만 실제 창을 띄우는 것과 같은 역할을 해준다.  (크롬 버전이 60이상이어야함)

4 - 2. 간단하게 로그인을 하는 예제 코드를 사용했는데 element에서 바로 click()을 사용하는 경우 에러가 났다. 왜냐하면 화           면이 직접 뜨는 것이 아니기 때문.. 따라서 JavaScriptExecutor 를 사용해서 자바스크립트로 클릭을 하면 성공적으로             수행할 수 있다.

    5. img 클릭 시 tag값에서 img src 값을 직접 지정해야 클릭이 가능하다.

용어정리


XA : eXtended Architecture의 줄임말로 말 그대로 확장된 아키텍쳐이다.

Non-XA : XA의 용어를 활용해보면 확장되지 않은 아키텍쳐이다.

트랜잭션 : 거래의 최소 단위이다. 보통  All or Nothing 이라고 얘기한다. 

  즉 거래라는 것은 서로간의 교환인데 한쪽만 성공한다면 데이터가 망가지기 때문에 정합성을 유지하기 위한 단위라고 볼 수 있다.


활용


일반적으로 DB 트랜잭션의 정합성 유지를 위해 XA 또는 NON-XA를 사용한다.


NON-XA : 기본적인 로컬 트랜잭션. 

   사용하는 DB가 하나일 때 Non-XA로 단순하게 Commit과 Rollback을 처리할 수 있다.

   조금 자세히 설명하자면, DB에 세션 하나에 하나의 트랜잭션을 모두 담아 놓고, 둘다 성공하면 커밋하고 하나라도 실패하면 세션을 롤백 시킨다.


XA : 확장된 아키텍쳐라는 말처럼 DB가 여러개 이거나, 트랜잭션의 주체가 여러개일 때 사용할 수 있다. (그 외에도 다양한 상황에서 사용가능하다.)

 보통 2pc (two-phase-commit)으로 진행되며, DB가 2개일 때를 예로 간단하게 설명하자면, 


 - 양쪽 DB에 준비가 되었는지 먼저 물어본다. -> 양쪽 모두 준비가 되었다고 한다. -> 준비가 완료되었다. -> 커밋을 진행한다.


 이렇게 진행이 된다. 여기서 한쪽이라도 문제가 있다면, 전부 롤백이 된다.



아직 XA를 제대로 활용해본적은 없지만, DB에 정합성에 중요한 역할을 하는 XA, Non-XA에 대해서 간단히 정리해 보았다.

+ Recent posts