Merge pull request #63 from eGovFramework/revert-61-2024/selenium/EgovLoginApiController

Revert "[2024년 전자정부 표준프레임워크 컨트리뷰션][로그인] 셀레늄 단위 테스트"
main
yongfire38 1 year ago committed by GitHub
commit 6baff2d418
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -8,17 +8,19 @@
<version>1.0.0</version>
<name>egovframework</name>
<url>example.egovframework.com</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<properties>
<spring.maven.artifact.version>5.3.27</spring.maven.artifact.version>
<org.egovframe.rte.version>4.2.0</org.egovframe.rte.version>
<selenium.version>4.23.1</selenium.version>
</properties>
<repositories>
<repository>
<id>mvn2s</id>
@ -41,12 +43,14 @@
</snapshots>
</repository>
</repositories>
<!-- spring Boot Parent 설정 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version>
</parent>
<dependencies>
<!-- spring boot dependency start -->
<dependency>
@ -121,12 +125,14 @@
</dependency>
-->
<!-- spring boot dependency end -->
<!-- swagger -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>org.egovframe.rte</groupId>
<artifactId>org.egovframe.rte.ptl.mvc</artifactId>
@ -162,17 +168,20 @@
<artifactId>org.egovframe.rte.fdl.security</artifactId>
<version>${org.egovframe.rte.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
@ -184,53 +193,64 @@
<version>1.18.28</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.8</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.7.2</version>
<classifier>jdk8</classifier>
</dependency>
<!-- mysql driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- oracle 10g driver -->
<!--
<dependency>
@ -239,6 +259,7 @@
<version>14</version>
</dependency>
-->
<!-- altibase driver -->
<!--
<dependency>
@ -247,6 +268,7 @@
<version>5.1.3.18</version>
</dependency>
-->
<!-- tibero driver -->
<!--
<dependency>
@ -255,6 +277,7 @@
<version>3.0</version>
</dependency>
-->
<!-- cubrid driver -->
<!--
<dependency>
@ -263,12 +286,14 @@
<version>8.4</version>
</dependency>
-->
<!-- validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.4.Final</version>
</dependency>
<!-- log4jdbc driver -->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
@ -281,32 +306,38 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<!-- JWT 2022.07.27 -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>73.2</version>
</dependency>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>yasson</artifactId>
@ -317,13 +348,9 @@
<artifactId>javax.json</artifactId>
<version>1.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
@ -397,6 +424,7 @@
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.mysema.maven</groupId>
@ -411,7 +439,9 @@
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
<execution>
<id>generate-test-entities</id>
<phase>generate-test-sources</phase>
@ -474,6 +504,7 @@
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>${basedir}/target/site</outputDirectory>
<plugins>

@ -1,69 +0,0 @@
package egovframework.let.uat.uia.web;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import lombok.extern.slf4j.Slf4j;
@Slf4j
class TestEgovLoginApiControllerSelenium {
WebDriver driver;
@BeforeEach
public void setup() {
driver = new ChromeDriver();
}
@Test
void test() {
if (log.isDebugEnabled()) {
log.debug("[2024년 전자정부 표준프레임워크 컨트리뷰션][로그인] 셀레늄 단위 테스트");
}
// given
// 로그인 화면 이동
driver.get("http://localhost:3000/login");
// 아이디 입력
sleep();
WebElement idWebElement = driver.findElement(By.cssSelector(
"#contents > div > div.login_box > form > fieldset > span > input[type=text]:nth-child(1)"));
idWebElement.sendKeys("admin");
// 비밀번호 입력
sleep();
WebElement passwordWebElement = driver.findElement(By.cssSelector(
"#contents > div > div.login_box > form > fieldset > span > input[type=password]:nth-child(2)"));
passwordWebElement.sendKeys("1");
// when
// 로그인 버튼 클릭
sleep();
WebElement loginWebElement = driver
.findElement(By.cssSelector("#contents > div > div.login_box > form > fieldset > button > span"));
loginWebElement.click();
// then
sleep();
WebElement spanWebElement = driver
.findElement(By.cssSelector("#root > div > div.header > div.inner > div.user_info > span"));
assertEquals("관리자", spanWebElement.getText(), "로그인 실패");
}
private void sleep() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
fail("InterruptedException: Thread.sleep");
}
}
}

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration scan="true">
<property resource="application.properties" />
<!-- 로그 파일이 저장될 경로 -->
<property name="LOG_PATH" value="${logging.file.path}" />
<!-- 로그 파일 이름 -->
<property name="LOG_FILE_NAME" value="${logging.file.name}" />
<!-- 로그 출력 패턴 -->
<property name="LOG_PATTERN"
value="%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n" />
<!-- 로그 용량 -->
<property name="LOG_MAX_FILE_SIZE"
value="${logging.rollingpolicy.maxFileSize}" />
<!-- 로그 보관주기 -->
<property name="LOG_MAX_HISTORY"
value="${logging.rollingpolicy.maxHistory}" />
<!-- 로그 레벨 -->
<!-- 1) ERROR : 오류 메시지 표시 2) WARN : 경고성 메시지 표시 3) INFO : 정보성 메시지 표시 4) DEBUG
: 디버깅하기 위한 메시지 표시 5) TRACE : Debug보다 훨씬 상세한 메시지 표시 아래에서는 info로 설정하였는데, 이
경우엔 INFO 보다 위에 있는 DEBUG와 TRACE는 표시하지 않는다. -->
<property name="LOG_LEVEL" value="${logging.root.level}" />
<!-- CONSOLE에 로그 출력 세팅 -->
<appender name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} : %30logger{5} -
%msg%n
</Pattern>
</layout>
</appender>
<!-- File에 로그 출력 세팅 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 파일 경로 설정 -->
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<!-- 출력패턴 설정 -->
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<!-- Rolling 정책 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>${LOG_MAX_FILE_SIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거 -->
<maxHistory>${LOG_MAX_HISTORY}</maxHistory>
<!--<MinIndex>1</MinIndex> <MaxIndex>10</MaxIndex> -->
</rollingPolicy>
</appender>
<logger name="java.sql" level="${LOG_LEVEL}" />
<logger name="egovframework" level="${LOG_LEVEL}" />
<logger name="org.egovframe" level="${LOG_LEVEL}" />
<logger name="jdbc.sqltiming" level="${LOG_LEVEL}" />
<logger name="org.springframework" level="${LOG_LEVEL}" />
<!-- 로그 전역 세팅 -->
<root level="${LOG_LEVEL}">
<!-- 위에 설정한 콘솔 설정 추가 -->
<appender-ref ref="CONSOLE" />
<!-- 위에 설정한 파일 설정 추가 -->
<appender-ref ref="FILE" />
</root>
</Configuration>
Loading…
Cancel
Save