소스 코드를 파이썬 기반의 자동화 된 테스트 프레임 워크 인터페이스 (주요 기사)

디렉토리

1, 소개
한, 디자인 아이디어는 프레임
2, 프레임 디자인 아이디어
(3)는, 프로그램 실행
4, 소스 획득을

소개

    많은 사람들이 현재 시장의 많은 사람들이 같은 테스트 도구, 자동화 된 것을 알고 : 자동화 된 테스트 플랫폼이있는 등 JMeter를, 우편 배달부,있는 testLink을, 왜 개발 인터페이스 프레임 워크에게 그것을 테스트 자동화 된해야합니까?
: 유사점이 날이 도구의 한계에 대해 이야기하자, 말을하지 않았다
1. 시험 데이터가 제어되지 않습니다
    인터페이스하지만 비즈니스 로직, 프로그램 코드, 실제로 테스트 데이터 입력 데이터 호출 인터페이스의 수에 대한 시험 리턴 코드 검증 데이터 인터페이스, 테스트 데이터 주변의 전체 과정을 주장하여.
    우리가 테스트 데이터 초기화 할 필요가 있으므로 반환 된 데이터가 해결되지 않은 경우,이 어설 실패를 변화한다, 당신은 변화를 인터페이스 프로그램 오류가 발생 알고, 또는 원인 데이터 수 없습니다.
    인터페이스 도구는 그래서 정말 테스트 자동화 인터페이스 할 수없는, 데이터 초기화 기능이 없습니다.

도움말을 예를 제공하려면 이해 :
     ID = 1, 주장은 다음과 같습니다 : 예를 들어, 당신은 테스트 데이터의 경우 초기화없이, 당신은 매개 변수를 입력하고, 쿼리 인터페이스를 테스트 할 어설 이름 = '테스트',이 주장은 인터페이스 미리 알 수 있다는 것입니다 무엇 돌아갑니다. 데이터베이스는 ID = 1의 데이터가 알고 있기 때문에 인터페이스를 호출, 결과는, 인터페이스 이름 = '테스트'주장 성공입니다.
    오늘 아이디 = 1 개 데이터가 삭제되었지만 여전히 실행 및 유지 관리 인터페이스 테스트 프레임 워크는 테스트 데이터를 업데이트되지 않은 결과의 주장이 실패 디버그를 이동, 그리고 마지막으로 테스트 데이터의 문제를 발견,이 과정은 시간이 많이 소요입니다 완료 테스트 데이터 기능을 초기 환경 경우 힘드는, 그것은 완전히 피할 수 있었다.
    매개 변수와 매개 변수가 고정되어 있기 때문에, 필요에 따라 초기화가 좋은 데이터 변경 만 프로그램 코드 문제의 인터페이스에 관심을 어설 션 오류를 발생에 대해 걱정하지 마십시오이다.

인터페이스 테스트 할 수 없습니다 2. 암호화
    외부 호출 보안 인터페이스를 제공하기 위해 사용자 인증, 서명, 암호화 및 다른 수단에 사용될를 들어, 프로젝트는 인터페이스의 대부분을 사용할 수 없습니다. 그리고 일반적인 테스트 도구는 시뮬레이션을하고 이러한 암호화 알고리즘을 생성 할 수 없습니다.

확장 성 항에 부족
    도구는 사용자 정의 테스트 보고서, 전자 우편 전송 사용자 정의 할 수 없으며, 지속적인 통합 및 시간 초과 작업을 생성 할 수 없습니다, 몇 가지 제한이 있습니다, 항상 도구입니다.

사업에 대한 지원의 4 수준
    도구는 다른 비즈니스 개발에 따라 사용자 정의 및 비즈니스에 대한보다 유연한 지원이 작업을 수행하는 프레임 워크를 테스트 자동화 될 수없는, 상대적으로 낮은 기업 지원 프로그램입니다.

프레임 워크 디자인 아이디어

1. 프로세스 흐름은 실질적으로 :

그림 삽입 설명 여기

2. 인터페이스 테스트 자동화 프레임 워크 프로세스 :

  • 먼저, 테스트 데이터 초기화 스크립트를 제조 데이터베이스에 테스트 데이터의 개수를 유지하고, 각각의 초기화 전에, 따라서 데이터가 최신 만 (피 복제에) 보장 원래 데이터를 비웠다.
  • 인터페이스 테스트중인 시스템에 호출 전달 파라미터, 요청 파라미터는 사전이고, (데이터 초기화 삽입) 데이터베이스의 데이터와 일치한다.
  • 데이터베이스에 대한 매개 변수, 테스트 쿼리를 기반으로 시스템 인터페이스를 제공합니다.
  • 결과는 소정의 데이터 포맷 (딕셔너리, JSON), 테스트 프레임으로 되돌아로 조립.
  • 워크 주장 리턴 데이터 인터페이스를 테스트 및하여 테스트 결과 (테스트 리포트)를 생성한다.

프레임 구조

그림 삽입 설명 여기

프레임 설명 :

각 디렉토리의 1. 역할 :

  1. 일반 / : 보고서, 로그 및 기타 공용 폴더에 저장 모듈
  2. 설정 / : 파일 경로, 구성 정보가 저장된다
  3. db_init / : 초기화 테스트 데이터 처리 프로그램
  4. 로그 / : 로그 파일을 생성
  5. 파이 / : 파이 가게
  6. 보고서 / : 시험 보고서의 저장
  7. 테스트 케이스 / : 쓰기 테스트 케이스에 사용
  8. 메인 프로그램 테스트 세트의 실행 run_main.py

주요 프로그램 파일은 run_main.py 실행합니다 :

# -*- coding: utf-8 -*-
'''
@author: liudinglong

@software: pycharm

@file:  run_main.py

@time: 2020/2/23 0023 13:46

'''

import time ,sys
# 引用模块路径
sys.path.append('./testcase')
sys.path.append('./db_fixture')
from common.HTMLTestRunner3 import HTMLTestRunner
from unittest import defaultTestLoader
from db_init import data_init

# 指定测试用例为当前文件夹下的 interface 目录
test_dir = './testcase'
# 自动获取interface 目录下的测试用例
testsuit = defaultTestLoader.discover(test_dir,pattern='*test.py')


if __name__ == '__main__':
    # 初始化接口测试数据
    data_init.init_data()
    # 获取当前时间
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    # 定制报告名称
    filename = './report/' + now + '_result.html'
    # 向报告写入测试结果数据
    fp = open(filename, 'wb')
    runner = HTMLTestRunner(stream=fp,
                            title='接口自动化测试报告',
                            description='运行环境:环境:windows 10 浏览器:chrome 语言: Python3')
    # 运行测试集
    runner.run(testsuit)
    # 关闭报告文件
    fp.close()

프로그램을 실행

결과 :

......FFFFFF.................
Time Elapsed: 0:00:00.208256

테스트 로그 :
그림 삽입 설명 여기
시험 보고서 :
그림 삽입 설명 여기

오류, 변경 후 오류 메시지가 표시되는 것을 두려워하고,하지 않는 실행

그림 삽입 설명 여기

    인터페이스가 공식적인 환경 인 경우 테스트하기 전에 테스트 환경을 준비해야합니다, 당신은, 별도의 테스트 데이터베이스를 만들 단지 프로젝트 테스트 환경 등이 세트를 사용해야합니다.
    데이터베이스 초기화, 데이터베이스 연결 테스트 환경, 테스트 데이터가 초기화를 이동해야 할 때마다 프로그램의 실행은, 데이터 충돌을 방지 공식 데이터의 역할 있도록 다시 초기화하고, 데이터베이스에 축적 된 중복 및 테스트 데이터를 방지하기 위해 한다.

소스 가져

소스가 gitee를 개최했다 액세스 : 696 400 122 : 테스트 개발 교류 QQ 그룹에 참여
마이크로 채널 대중 번호 : 풀 스택 테스트 개발 일기,
공원 주소를 블로그 : 블로그 가든 주소
그림 삽입 설명 여기

게시 82 개 원래 기사 · 원의 찬양 (43) · 전망 180 000 +

추천

출처blog.csdn.net/liudinglong1989/article/details/104457379