python接口自动化测试 第7章 从excel中读取params参数传入requests请求不生效问题的解决过程

在第六目把主函数写好了,先来运行一下主函数
在这里插入图片描述
从截图中可以看到,请求参数打印出来了,和excel中填写的一致

在这里插入图片描述
但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中params的值已经按照requests的要求写成了字典格式);

后来突然想到一个原因:python从excel中解析出来的数据类型不是字典!!,所以无法传递给requests当做请求参数

接着做了如下实验:
在这里插入图片描述
运行结果:
在这里插入图片描述
果然,数据类型是‘str’,不是‘dict’

知道原因就好办了,利用json库的loads方法将数据反序列化
在这里插入图片描述
在这里插入图片描述
所以,主函数做如下调整】

# coding:utf-8

from base.run_method import RunMain
from util.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)
            method = self.data.get_value(i, get_method())  # 循环获取method的值
            data = json.loads(self.data.get_value(i, get_params()))   # 循环获取请求参数,并将得到的数据反序列化
            # data = self.data.get_value(i, get_params())  # 循环获取请求参数
            print(data)
            is_run = self.data.get_value(i, get_priority())  # 获取是否运行,即判断excel中priority是不是"H"
            if is_run == 'H':
                res = self.Runmain.run_main(url, method, data)  # 调用get/post主函数
                print(res)


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

这下能够正确执行了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值