2014-10-14 1 views
1

Selenium webdriver 테스트를하는 동안 신용 카드 번호가 화면에 표시되지 않도록하려고합니다. 중앙 데이터베이스에서 신용 카드 번호를 가져 오는 중이고 테스트에서 찾을 수 없습니다. 보안을 위해 셀레늄이 신용 카드 번호 입력란의 숫자 sendKeys에 시도하면서 카드 번호를 가리고 싶습니다. 다른 옵션을 시도했지만 카드의 실제 값을 변경하여 페이지에서 카드 번호 오류를 발생시키는 경향이 있습니다. 셀레늄의 실제 가치에 영향을 미치지 않고 실제 카드를 어떻게 숨길 수 있는지에 대한 아이디어가 있습니까? 여기실제 카드 번호를 변경하지 않고 신용 카드 번호를 셀레늄의 sendkeys로 마스크하는 방법은 무엇입니까?

내가 무슨 짓을 :

String creditCardNumber = "1234567891234567"; 
driver.findElement(By.id("label")).sendKeys(
    maskCardNumber(creditCardNumber, "xxxxxxxxxxxxxxx")); 

public static String maskCardNumber(String cardNumber, String maskedCard) { 
    // format the number 
    int index = 0; 
    StringBuilder maskedCardNumber = new StringBuilder(); 
    for (int i = 0; i < maskedCard.length(); i++) { 
     char c = maskedCard.charAt(i); 
     if (c == '#') { 
      maskedCardNumber.append(cardNumber.charAt(index)); 
      index++; 
     } else if (c == 'x') { 
      maskedCardNumber.append(c); 
      index++; 
     } else { 
      maskedCardNumber.append(c); 
     } 
    } 

    // return the masked number 
    return maskedCardNumber.toString(); 
} 
+2

가장 안전한 방법은 방법은 테스트 카드 번호 만 사용하는 것입니다. 테스트에서 누군가가 키로거를 삽입하더라도 카드 번호는 노출되지 않습니다. 일반적인 시험 카드 번호 (VISA)는'4444333322221111'입니다. 어떤 은행도 그 번호로 거래를 승인하지 않습니다. ** 실제 카드 번호는 ** 사용하지 마십시오 **. – OldCurmudgeon

+0

가장 좋은 점은 실제 카드 번호를 사용하고 싶지 않다는 것입니다. 그럴 수 없다면 데이터베이스에서 카드 번호를 읽고 변수에 저장하고 변수를 전달하면 코드를 건드린 사람이 모니터를 넘겨서 카드 번호를 볼 수 없게됩니다 :) –

+0

신속한 응답을 위해 @OldCurmudgeon 및 Vignesh에게 감사드립니다. 이것은 실제로 생산 검증 테스트를위한 것이며, 나는 가짜 카드를 가지고있다. 매번 수동 검증 유효성 검사를 수행하는 대신 자동화 된 테스트를 수행해야합니다. 그것은 의미가 있습니까? – Automation

답변

0
  • 가장 좋은 방법은 시험 번호 또는 일회용 카드
  • 당신이 웹 페이지 DOM에 액세스 할 수있는 경우를 사용하는 것입니다, 입력 유형 "텍스트"를 "비밀번호"로 변경하십시오.