파이썬 인터페이스 자동화 9-DDT 데이터 드라이버

머리말

DDT : 데이터 구동은 간단한 포인트는 작은 지점 때 로그인 입력 정상, 비정상 데이터 로그와 같은 테스트 데이터의 다수의 세트 인 것을 특징으로하는 방법.

실제 프로젝트, 아주 작은을 가진 자동화 된 테스트는,뿐만 아니라 테스트 데이터는 엑셀 유지하는 데 사용되었다

A, DDT

1, 설치 : 핍 (여기서 나는을 설치 한) DDT 설치

C : \ 사용자 \ 관리자> 핍 DDT 설치 
이미 충족 요구 사항 : DDT 에서 D를 : \ path_python \ lib 디렉토리 \ 사이트 - 패키지 ( 1.2 . 1 )

2, 선 우리의 이전의 정상적인 로그인 대량 참여 봐. 지금 필요한 계좌 번호와 비밀번호, 데이터의 한 세트 로그인, DDT는 데이터 실행의 여러 세트를 할 수 있습니다. (여기에 자신이 오게)

# 로그인 
S = requests.session () 
LOGIN_URL = ' http://127.0.0.1/zentao/user-login.html ' 
PR = {
     ' 계정 ' : ' ADMIN ' ,
     ' 비밀번호 ' : ' 123456 ' , 
} 
login_r = s.post (LOGIN_URL, PARAMS = PR) # 통과 PARAMS 매개 변수 

#은 로그인 성공 여부를 말할 
R1 = S. GET ( ' http://127.0.0.1/zentao/doc-browse-1-byModule-0-id_desc-doc가. HTML ' )
IF  ' 제품 중앙 도서관 '  에서 r1.content.decode ( ' UTF-8 ' ) : 
    인쇄 ( ' 로그인 성공 ' )
 다른 : 인쇄 ( ' 로그인 실패 ' )

 3, 유닛 테스트 DDT 소개합니다.

① 우선 데이터 세트의 여러 소스를 가지고 (나는, 당신은 또한 같은 같은 파일을 읽을 수있는 데이터 JSON 자신의 정의의 세트를 썼다!)

② 테스트 클래스, 우리는 장식을 추가해야합니다 : @ ddt.ddt

③ 테스트 기능, 또한 장식을 추가하고, 전체 데이터 전송을 통해 모든 데이터를 전송해야 * 각각 @ ddt.data (* test_data)

④ 참고 : DDT 패스에서 사용되는 데이터 세트의 데이터 대신 test_data보다 아니지만 * test_data

가져 오기 요청, DDT, 유닛 테스트 

데이터 드라이버 준비하는 데이터 #의 DDT 필요 
TEST_DATA을 = [ 
    { ' 계정 ' : ' ADMIN ' , ' PWD ' : ' 123465 ' , ' 특급 ' : ' ADMIN ' }, 
    { ' 계정 ' : ' gsxl은 ' , ' PWD ' : ' 123321 ' , ' 특급 ' :'gsxl ' }, 
    { ' 계정 ' : ' XXXX ' , ' PWD ' : ' 654321 ' , ' 특급 ' : ' XXXX ' }] 

#类需要DDT装饰器
@ ddt.ddt 
클래스 Test_xl (unittest.TestCase) : 

    DEF 설정 (자동) : 
        self.s = requests.session () 
        self.s.verify = 거짓 

    데프 형 분석 (자기) : 
        self.s.close () 

    @ ddt.data ( *test_data) # 사용 사례는 테스트 데이터 DDT 사용합니다 
    : DEF의 test_001 (자체, 데이터) 
        (인쇄 ' DDT 테스트 데이터 : % S ' % 데이터) 

경우 __name__ == ' __main__ ' : 
    unittest.main () #은 말했다 내 인터프리터는 유닛 테스트에 의해 실행됩니다 !

네, 어떻게 당신이 원하는 해당 값을 얻으려면? 그것은 그렇지 않으면 첫 번째로 변경된 기본 데이터 삭제 수표의 새로운 구조를 배울를 얻을 수 그것은 DICT,리스트의 반환 같아요. 간단한 추출은 다음과 같습니다 :

import requests, ddt, unittest

# ddt数据驱动所需准备的数据
test_data = [
    {'account': 'admin', 'pwd': '123465', 'exp': 'admin'},
    {'account': 'gsxl', 'pwd': '123321', 'exp': 'gsxl'},]

# 类需要ddt装饰器
@ddt.ddt
class Test_xl(unittest.TestCase):

    def setUp(self):
        self.s = requests.session()
        self.s.verify = False

    def tearDown(self):
        self.s.close()

    @ddt.data(*test_data)   # 某个用例需要用到ddt的测试数据
    def test_001(self, data):
        # print('ddt测试数据是:%s' % data)
        user = data['account']
        pwd = data['pwd']
        exp = data['exp']
        print('这是账号:', user)
        print('这是密码:', pwd)
        print('这是期望结果:', exp)

if __name__ == '__main__':
    unittest.main()                 # 告诉解释器我是用unittest运行的!!!

如果想用excel维护测试用例、测试数据的同学那肯定要懂得使用 xlrd 这个模块了。

进行适配的二次封装,达到你想设计的自动化模式。欢迎来QQ交流群:482713805

추천

출처www.cnblogs.com/gsxl/p/11964182.html