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();
}
가장 안전한 방법은 방법은 테스트 카드 번호 만 사용하는 것입니다. 테스트에서 누군가가 키로거를 삽입하더라도 카드 번호는 노출되지 않습니다. 일반적인 시험 카드 번호 (VISA)는'4444333322221111'입니다. 어떤 은행도 그 번호로 거래를 승인하지 않습니다. ** 실제 카드 번호는 ** 사용하지 마십시오 **. – OldCurmudgeon
가장 좋은 점은 실제 카드 번호를 사용하고 싶지 않다는 것입니다. 그럴 수 없다면 데이터베이스에서 카드 번호를 읽고 변수에 저장하고 변수를 전달하면 코드를 건드린 사람이 모니터를 넘겨서 카드 번호를 볼 수 없게됩니다 :) –
신속한 응답을 위해 @OldCurmudgeon 및 Vignesh에게 감사드립니다. 이것은 실제로 생산 검증 테스트를위한 것이며, 나는 가짜 카드를 가지고있다. 매번 수동 검증 유효성 검사를 수행하는 대신 자동화 된 테스트를 수행해야합니다. 그것은 의미가 있습니까? – Automation