接口自动化测试框架(python3+requests+excel)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31524409/article/details/88537290

Git:https://github.com/lilinyu861/Interface-Test

环境配置:

   开发工具:pycharm2018+Excel

   开发框架:python3+requests+excel

接口自动化测试框架介绍:

此接口测试框架,首先由用户设计原始的测试用例并为测试用例写用例注解,将原始测试用例写入excel文件中保存到data_origin文件夹中,例如下图所示

然后调用common文件夹中的generateTestcases.py中的generate_testcases()方法,向方法中传入参数,参数内容包括原始测试用例excel文件位置,生成测试用例excel文件后的保存位置,生成测试用例注解excel文件后的保存位置。

生成测试用例excel文件如下所示:

生成测试用例注解excel文件如下所示:

测试用例生成之后,可以编辑接口测试代码,执行接口测试,然后将测试用例的数据写入excel文件中并存储在reports文件夹中。   

接口自动化测试框架各模块详细介绍:

整个测试框架的结构如下图所示:

  • common 存放公用的方法
  • common_data 存放公用的数据
  • data 存放测试用例的excel文件
  • data_origin 存放原始测试用例的excel文件
  • reports 存放记录接口测试用例返回报文的excel文件
  • test 测试测试框架的方法能否正常执行
  • testcase 存放接口测试编写的测试用例

整个测试框架主要分为两部分:测试用例生成,接口测试执行

一、  测试用例的生成:

             1. 用户将存储原始测试用例的excel文件放到data_origin文件夹中;

             2. 编辑接口测试脚本,在接口测试脚本中调用generateTestcase.py文件的generate_testcases方法,生成测试用例并将测试用例写入excel文件存储在data文件夹中。

二、  接口测试执行

            1. 接口测试脚本编写,首先读取data文件中的测试用例,并将测试用例生成json格式数据

            2. 调用reqMethod里的请求方法,进行接口测试

            3. 将接口测试返回数据写入excel文件并保存在reports文件夹中。

"""
接口测试
读取excel中的原始数据,经处理后生成测试用例,利用测试用例对接口进行测试,将接口测试返回结果存放到excel文件中。
"""
from common.generateTestcases import GenerateTestcases
from common.excelToDic import ExcelToDic
from common_data.interfaceUrl import Url
from common.reqMethod import RequestMethod
import xlwt


login_url = Url.login_url
# 原始数据表格位置
origin_excel_path = '../test/data_origin/test_read_excel.xlsx'
# 测试用例数据存放位置
excel_case_1 = '../test/data/test_case_01.xls'
# 测试用例解释数据存放位置
excel_case_2 = '../test/data/test_case_02.xls'
save_path = '../test/reports/report.xls'
g = GenerateTestcases()
# 生成测试用例及测试用例解释的excel文件
g.generate_testcases(origin_excel_path, excel_case_1, excel_case_2)
# 写入的excel
book = xlwt.Workbook(encoding="utf-8")
sheet = book.add_sheet('Sheet1', cell_overwrite_ok=True)
# 报文头
headers = {
    'Content-Type': 'application/json'
}
# 将测试用例写入excel文件中
test_cases = ExcelToDic().getExcelData(excel_case_1, 'Sheet1')
print(test_cases)
len = len(test_cases)
for i in range(len):
    print(test_cases[i])
    response = RequestMethod().post(interface_url=login_url,
                                    headers=headers,
                                    data=test_cases[i])
    print(i, response)

    # 将数据写入i行j列
    sheet.write(0, 0, 'email')
    sheet.write(0, 1, 'password')
    sheet.write(0, 2, 'response')
    sheet.write(i+1, 0, test_cases[i]['email'])
    sheet.write(i+1, 1, test_cases[i]['password'])
    sheet.write(i+1, 2, response.text)
book.save(save_path)



生成的接口测试结果如下图所示:

猜你喜欢

转载自blog.csdn.net/qq_31524409/article/details/88537290