Python 기반 인터페이스 자동화 유닛 테스트 프레임 워 크 와 dt 데이터 구동 상세 설명
인터페이스 자동화 사례 를 작성 할 때,우 리 는 일반적으로 하나의 인터페이스 에 대해.py 파일 을 만 듭 니 다.하나의 인터페이스 테스트 사례 는 함수(방법)로 봉 인 됩 니 다.그러나 대량으로 실행 하 는 과정 에서 오류 가 발생 하면 뒤의 사례 는 실행 할 수 없습니다.그리고 대량의 인터페이스 테스트 사례 를 실행 할 때 데 이 터 를 어떻게 관리 하고 불 러 오 는 지 테스트 합 니 다.테스트 용례 불 러 오기 및 실행 제어 에 대해 python 언어 는 unittest 단원 테스트 프레임 워 크 를 제공 합 니 다.테스트 용례 를 unittest 프레임 워 크 에 작성 합 니 다.이 프레임 워 크 를 사용 하면 서로 영향 을 주지 않 는 용례 실행 및 더욱 유연 한 실행 제 어 를 단일 또는 대량으로 불 러 올 수 있 습 니 다.테스트 데이터 관리 와 불 러 오기 에 더 좋 은 데 이 터 를 도입 합 니 다.테스트 데이터 와 테스트 스 크 립 트 의 분 리 는 dt 데이터 구동 을 통 해 테스트 데 이 터 를 테스트 사례 스 크 립 트 에 불 러 옵 니 다.보통 인터페이스 자동화 테스트 에서 유 니 트 테스트 와 dt 를 결합 하여 사용 하여 테스트 사례 스 크 립 트 와 테스트 데 이 터 를 불 러 와 테스트 를 수행 합 니 다.유닛 테스트 프레임 워 크 와 dt 두 모듈 의 구체 적 인 응용 을 살 펴 보 겠 습 니 다.
1.unittest 테스트 프레임 워 크
unittest 단원 테스트 프레임 워 크 는 python 언어의 표준 모듈 로 봉인 은 많은 조작 테스트 용례 와 용례 불 러 오기,테스트 전치 와 장면 회복,테스트 결과 출력 등 일련의 종류 와 방법 을 제공한다.
1.unittest 프레임 워 크 의 가장 핵심 적 인 네 가지 구성 요소 개념:
(1)TestCase:테스트 사례 류,테스트 사례 스 크 립 트 를 작성 할 때 이 종 류 를 계승 하여 이러한 속성 과 방법 을 가 집 니 다.하나의 TestCase 인 스 턴 스 는 테스트 사례 입 니 다.그 중에서 테스트 사례 방법 은 모두 test 로 시작 합 니 다.
(2)TestSuite:테스트 집합,즉 테스트 사례 의 집합 으로 사례 를 구성 하 는 데 사용 된다.
(3)testrunner:테스트 용례 를 실행 하고 테스트 용례 의 실행 결 과 를 되 돌려 줍 니 다.테스트 결 과 를 도형 이나 텍스트 로 이미지 있 게 보 여 줍 니 다.HTML TestRunner 는 도형 화 된 보고 서 를 만 들 고 TextTestRunner 는 간단 한 텍스트 테스트 결 과 를 만 들 수 있 습 니 다.
(4)testfix ure:테스트 클립 은 주로 테스트 사례 의 초기 화 와 실행 후의 소각 에 사 용 됩 니 다.
2.testcase----테스트 용례
다음은 간단 한 코드 예 시 를 통 해 TestCase 와 TestFixure 의 사용 을 살 펴 보 겠 습 니 다.
(1)setup()과 teardown()을 사용 하여 test 생 성666.py 파일 은 다음 코드 를 편집 합 니 다.
import unittest
class test_unittest(unittest.TestCase):
def setUp(self):
print(" , setup")
def tearDown(self):
print(" , teardown")
print("------------------------------")
def test_a(self):
print(" test_a ")
def test_A(self):
print(" test_A ")
def test_1(self):
print(" test_1 ")
def notest_1(self):
print(" notest_1 ")
if __name__ == "__main__":
unittest.main()
실행 후 출력 은 다음 과 같 습 니 다:코드 에서 우 리 는 4 개의 def 용례 방법 을 작 성 했 습 니 다.3 개의 def 만 실 행 했 습 니 다.마지막 def 는 test 시작 이 아니 기 때 문 입 니 다.def 용례 를 실행 할 때마다 setup()과 teardown()이 한 번 씩 실행 되 는 것 을 볼 수 있 습 니 다.그 중에서 실행 순서에 따라:test1 가장 먼저 실행,testA 이후,test마지막 실행
(2)setUpClass()와 tearDownClass()를 사용 합 니 다.
setUpClass()와 tearDownClass()
,
에 대해
import unittest
class test_unittest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print(" , setup")
@classmethod
def tearDownClass(cls):
print(" , teardown")
print("------------------------------")
def test_a(self):
print(" test_a ")
def test_A(self):
print(" test_A ")
def test_1(self):
print(" test_1 ")
if __name__ == "__main__":
unittest.main()
실행 효 과 는 다음 과 같 습 니 다:모든 용례 가 실 행 된 후 setUpClass()와 tearDownClass()
。 , ,
를 볼 수 있 습 니 다.이때 우리 가 바 라 는 것 은 모든 용례 를 집행 한 후에 환경 을 없 애 는 것 이다.이때
setUpClass()
와tearDownClass()
를 사용 하 는 것 이 좋다.3.TestSuite----테스트 집합
unittest 프레임 워 크 에서 unittest.TestSuite()와 unittest.TestLoader()클래스 를 제 공 했 습 니 다.이 두 가지 클래스 에 서 는 테스트 용례 를 테스트 집중 에 불 러 오 는 데 사 용 됩 니 다.
(1)unittest.TestSuite()는 하나의 사례 로 불 러 오 는 방법 을 제공 합 니 다.
addTest():하나의 사례 로 불 러 옵 니 다.물론 여러 사례 의 방법 명 을 목록 에 추가 하여 addTest()에 추가 할 수도 있 습 니 다.여러 테스트 사례 를 불 러 옵 니 다.
(2)unittest.TestLoader()는 대량으로 불 러 오 거나 사례 를 발견 하 는 방법 을 제공 합 니 다.
loadtasts FromTestCase(테스트 클래스 이름):테스트 클래스 추가
loadtastsFromModule(모듈 명):모듈 추가
discover(테스트 용례 가 있 는 디 렉 터 리):디 렉 터 리 를 지정 하여 불 러 옵 니 다.이 디 렉 터 리 에서 이름 규칙 에 맞 는 모든 테스트 용례 를 자동 으로 찾 습 니 다.
4.testrunner----테스트 실행
testrunner 는 테스트 용례 를 실행 하고 해당 하 는 테스트 보고 서 를 생 성 할 수 있 습 니 다.테스트 보고 서 는 두 가지 전시 형식 이 있 는데 하 나 는 text 텍스트 이 고 하 나 는 html 형식 이다.
html 형식 은 바로 HTML TestRunner 입 니 다.HTML TestRunner 는 Python 표준 라 이브 러 리 의 unittest 프레임 워 크 의 확장 으로 직관 적 이 고 뚜렷 한 HTML 테스트 보고 서 를 만 들 수 있 습 니 다.사용 전 제 는 HTML TestRunner.py 를 다운로드 하고 다운로드 한 후 python 의 설치 디 렉 터 리 에 있 는 scripts 디 렉 터 리 에 놓 으 면 됩 니 다.
코드 예 시 를 통 해 testsuite 와 testrunner 두 구성 요소 의 사용 을 보십시오.위의 test666.py 용례 파일 우 리 는 이미 세 가지 용례 를 썼 습 니 다.지금 우 리 는 이 용례 를 불 러 옵 니 다.
새 runcase.py 파일,이 파일 과 test666.py 파일 을 같은 패키지 파일 에 배치:test 에서 runcase.py 파일 편집 다음 코드 실행:
import unittest
from test.test_666 import test_unittest
#
suite = unittest.TestSuite()
case1 = test_unittest('test_1')
case2 = test_unittest('test_a')
suite.addTest(case1)
suite.addTest(case2)
print(suite)
print("------------------")
#
case_path = r"E:\api_test\test"
# , __init__.py
all_case = unittest.defaultTestLoader.discover(case_path,pattern="test_666*.py",top_level_dir=None)
all_case1 = unittest.defaultTestLoader.loadTestsFromTestCase(test_unittest) #
print(all_case)
print("------------------")
print(all_case1)
출력 결 과 는 다음 과 같 습 니 다.E:\api_test\Scripts\python.exe E:/api_test/test_bak/run_case.py
------------------
------------------
Process finished with exit code 0
unttest 프레임 워 크 에서 제공 하 는 로 딩 사례 의 여러 가지 방법 을 통 해 저 희 는 하나의 또는 대량으로 로 딩 사례 를 불 러 올 수 있 습 니 다.추 후 로 딩 사례 집 을 HTML TestRunner.py 모듈 에 도입 하여 시각 화 된 테스트 보고 서 를 만 들 수 있 습 니 다.
5.assert---테스트 단언
어떤 테스트 사례 든 마지막 으로 사례 가 실 행 된 후의 검증 이 필요 하 다.인터페이스 자동화 테스트 에서 우 리 는 인터페이스 사례 를 실행 한 후에 도 단언 사례 가 우리 의 기 대 를 만족 시 키 는 지 검증 해 야 한다.unittest 는 풍부 한 단언 방법 을 제공 합 니 다.흔히 볼 수 있 는 단언 은 다음 과 같 습 니 다.
2.dt 데이터 구동
(1)간단 한 인자 입력:단일 값,목록,원조,사전
import unittest
from ddt import data,unpack,ddt
@ddt
class myddt(unittest.TestCase):
@data("123") #
def test1(self,testdata1):
print(testdata1)
print("------------------")
@data([1,2,3],[4,5,6]) #
def test2(self,testdata2):
print(testdata2)
print("------------------")
"""
@data((1, 2, 3)) #
def test2(self, testdata3):
print(testdata3)
print("------------------")
@data({'zhangshan':1,'wangwu':2,'lisi':3}) #
def test2(self, testdata4):
print(testdata4)
print("------------------")
"""
if __name__ == '__main__':
unittest.main()
(2)원 그룹,목록 데이터 등 복잡 한 데이터 구 조 를@unpack 으로 분해 합 니 다.코드 예제:
import unittest
from ddt import data,unpack,ddt
@ddt
class myddt(unittest.TestCase):
@data([1,2],[3,4]) #
@unpack
def test2(self, testdata1,testdata2):
print(" :",testdata1)
print(" :", testdata2)
print("------------------")
if __name__ == '__main__':
unittest.main()
실행 후 출력 은 다음 과 같 습 니 다:(3)@file 사용data()입력 파일 형식 테스트 데이터
data.json 파일 을 편집 합 니 다.코드 예제:
import unittest
from ddt import file_data,ddt
@ddt
class myddt(unittest.TestCase):
@file_data(r"E:\api_test\test\data.json")
def test1(self, *value):
print(value)
if __name__ == '__main__':
unittest.main()
ddt 와 unittest 프레임 워 크 의 결합 을 통 해 테스트 사례 스 크 립 트 작성,테스트 실행 제어 및 테스트 데이터 의 대량 로드 를 실현 하여 서로 다른 인터페이스 테스트 사례 의 대량 실행 과 테스트 장면 을 덮어 쓸 수 있 습 니 다.파 이 썬 기반 인터페이스 자동화 유닛 테스트 프레임 워 크 와 dt 데이터 구동 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 파 이 썬 의 인터페이스 자동화 dt 데이터 구동 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.