이전 챕터의 내용을 하나씩 하나씩 정리를했으면, 이제 당신은 간단한 Ui테스트 구조적인 방식에 대해서 알게 되었고, 이제는 이것의 결과물을 예쁘게 만드는 일만 남았다.

pytest에서는 다양한 리포팅 툴 시스템을 제공하고 있지만, 필자는 Allure를 개인적으로 좋아한다.

왜냐면, UI/X가 정말 괜찮고, 각 단위별 스텝을 확인할 수 있기에 QA 또는 개발의 입장에서도 좀 더 명확하게 구분을 할 수가 있다.

Allure Home page : https://docs.qameta.io/allure/

Allure report는 다음과 같이 설치를 진행하면 된다.

<aside> 💡 pip3 allure-pytest

</aside>

설치 진행을 완료했으면 Step 8.에 있는 내용들 중 test, page에 있는 내용들을 가지고 Allure 사용벙을 간략하게 알아보겠다.

# Page Package 에 있다는 가정 하에 셋팅

import pytest
import allure

class loginpage:
	@allure.step("로그인 페이지 접근하기 - ID, PW 입력하기")
	def submit_login(self):
		# xpath로 element 찾기
		login_btn = self.driver.find_element_by_class_name("link_login").click()
		login_id = driver.find_element_by_xpath("//input[@name='id']")
		login_pw = driver.find_element_by_xpath("//input[@name='pw']")

		# id와 pw 입력
		login_id.send_keys("id")
		login_pw.send_keys("pw")		

@allure.step이라는 것을 def 함수 정의 위치에 만들어 놓았다. 이것은 바로, 각 행위별 단계를 명시 해주는 기능이다.

import pytest
from Base.webdriver import Setting
from pages.loginpage import LoginPage
import allure

class TestFront(Setting):
    @allure.title("로그인 Suite")
    @allure.description("# 로그인 케이스_01. 네이버 로그인 ")
    def test_login_success(self):
        login = LoginPage(self.driver)
        login.enter_login()

@allure.title은 pytest의 제목, @allure.description은 이 제목에 대한 부연설명을 하는 곳이다.

자 이렇게 allure 설정이 만들어졌으면, allure-result라는 폴더를 생성한 뒤 다음과 같은 명령어를 입력한다.

pytest --alluredir allrue-result("해당경로는 상대 및 절대 경로를 사용해도 무방")

테스트가 완료 되었다면, allure-report라는 곳에는 .json, .text 라는 파일이 만들어졌다.

자 그럼 이것을 HTML - Report 로 변환을 하겠다.

allur generate allrue-result("해당경로는 상대 및 절대 경로를 사용해도 무방")

그럼 자동으로 allure-report가 생성이 되고 다음과 같이 표현이 된다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4c3422d6-3913-4c0d-99c9-45591e2c6b1a/_2021-03-28__11.56.44.png