接口自动化测试 unittest+request+excel(踩‘坑’)

通过运行主函数,返回的参数,报json解析错误

正常的返回参数,应该如图

造成这个原因的是:

python从excel中解析出来的数据类型不是字典,是字符串,所以无法传递给requests当做请求参数

需用用json.loads()转成字典格式,然后进行传参

对python从Excel中解析出来的数据类型进行测试一波

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

import xlrd
import json
import requests

data = xlrd.open_workbook(‘D:/hunter_/interfaceTest/interface/tool/demo2.xlsx‘)
sheet = data.sheet_by_index(0)

url = sheet.cell_value(1, 5)
data1 = sheet.cell_value(1, 9)
#data2 = json.loads(data1)
print(‘从Excel中提取出来的params为:‘, data1)
print(‘从Excel中提取出来的params的数据类型为:‘, type(data1))
#print(type(data2))

结果:可以看到结果是字符串类型

加入json.load进行转换:转成字典类型

主函数进行修改:

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

from conn.run_demo import RunMain
from interface.tool.handle_excel import *
import json

class RunTestCase:
    def __init__(self):
        self.Runmain = RunMain()        # 实例化调用get/post请求基类
        self.data = HandleExcel()       # 实例化操作Excel文件类

    def go_run(self):
        rows_count = self.data.get_rows()                   # 获取Excel行数
        for i in range(1, rows_count):                      # 利用行数进行迭代处理每个接口
            url = self.data.get_value(i, get_url())         # 循环获取URL的值
            print(url)
            print(‘=====‘)
            method = self.data.get_value(i, get_mothod())   # 循环获取method的值
            data = json.loads(self.data.get_value(i, get_params()))     # 循环获取请求参数
            print(data)
            print(‘=====‘)
            is_run = self.data.get_value(i, get_priority()) # 获取是否运行,即判断Excel中priority是不是为“high"
            if is_run == ‘high‘:
                res = self.Runmain.run_main(url, method, data)  # 调用主函数
                print(res)
                print(‘=====‘)

if __name__ == ‘__main__‘:
    run = RunTestCase()
    run.go_run()

其中还有一个坑就是:

通过Excel进行传参,数据内容,格式只能用双引号,不然就会报错:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

原文地址:https://www.cnblogs.com/hemingwei/p/11579194.html

时间: 2024-11-10 16:14:08

接口自动化测试 unittest+request+excel(踩‘坑’)的相关文章

接口自动化测试 unittest+request+excel(八)

完善接口自动化测试框架,加入日志模块 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import logging import os import time class Logger: def __init__(self, loggername): # 创建一个logger self.logger = logging.getLogger(loggername) self.logger.setLevel(loggi

接口自动化测试 unittest+request+excel(五)

封装操作Excel方法,后续功能进行直接调用 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import xlrd class HandleExcel: """封装操作Excel的方法""" def __init__(self, file='D:/hunter_/interfaceTest/interface/tool/demo2.xlsx', sheet_id=

接口自动化测试 unittest+request+excel(二)

上一节是接口测试单条测试get/post,加上封装. 通过学习到unittest,使用其中的unittest.TestCase和Testsuit #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import unittest from conn.run_demo import RunMain # 上一节写的类,进行调用 import HTMLTestRunner import json class TestMeth

python接口自动化测试(十一)-写入excel(xlswriter)--生成图表

一.折线图: # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个sheet worksheet = workbook.add_worksheet() # worksheet = workbook.add_worksheet("bug_analysis") # 自定义样式,加粗 bold = workb

python接口自动化测试(十)-写入excel(xlswriter)

 一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlswriter 不报错说明模块安装成功 二.常用方法: 1.创建excel文件 # 创建文件 workbook = xlsxwriter.Workbook("new_excel.xlsx")  2.创建sheet # 创建sheet worksheet = workbook.a

python接口自动化测试 - unittest框架基本使用

unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/unittest.html unittest基础使用 1 # 导入unittest模块 2 import unittest 3 4 5 # 创建单元测试类,继承unittest.TestCase 6 class testCase(unittest.TestCase): 7 8 def setUp(self

python接口自动化测试 - unittest框架suite、runner详细使用

test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 用于执行和输出结果的组件 test suite.test runner基础使用 单元测试类 1 # 创建单元测试类,继承unittest.TestCase 2 class testCase(unittest.TestCase): 3 4 # 测试case 5 def test_01(self):

简单实现接口自动化测试(基于python+unittest)

简单实现接口自动化测试(基于python+unittest) 简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解. 引言 为什么要做接口自动化测试? 在当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代都对所有功能做完整回归.但接口自动化测试因其实现简单.维护成本低,容易提高覆盖率等特点,越来越受重视.

【python3+request】python3+requests接口自动化测试框架实例详解教程

转自:https://my.oschina.net/u/3041656/blog/820023 前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的是java语言,但对于一个学java,却在学python的我来说,觉得python比起java更简单些,所以,我决定自己写python的接口自动化测试框架,由于本人也是刚学习python,