python调用接口时传多个参数_记录python接口自动化测试--从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()

这下能够正确执行了

记录python接口自动化测试--根据excel中的期望输出是否存在请求返回的响应来判断用例是否执行成功(第八目)

1.首先在excel中的expectValue列填好预期结果值 这里判断接口成功的依据是预期结果值是否存在于接口返回的数据中. 首先,要知道在之前封装的get/post请求方法中返回的是‘str’,也 ...

记录python接口自动化测试--把测试结果写进excel文件(第九目)

python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取 ...

记录python接口自动化测试--简单总结一下学习过程(第十目)

至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有 ...

记录python接口自动化测试--requests使用和基本方法封装(第一目)

之前学习了使用jmeter+ant做接口测试,并实现了接口的批量维护管理(大概500多条用例),对"接口"以及"接口测试"有了一个基础了解,最近找了一些用pyt ...

记录python接口自动化测试--主函数(第六目)

把操作excel的方法封装好后,就可以用准备好的接口用例来循环遍历了 我的接口测试用例如下 主函数代码: run_handle_excel.py# coding:utf-8 from base.run ...

记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)

前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...

记录python接口自动化测试--利用unittest生成测试报告(第四目)

前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py ...

记录python接口自动化测试--unittest框架基本应用(第二目)

在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...

随机推荐

AC日记——字典 codevs 4189

4189 字典  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 最经,skyzhong得到了 ...

Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件

1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分.并没有本质的不同,都是通过实现 HandlerInterceptor ...

html的<h>标签

标签:标题标签. 标签只有六个:

........

Goland的使用

一.安装Goland 一.Goland简介 Goland是由JetBrains公司旨在为go开发者提供的一个符合人体工程学的新的商业IDE.这个IDE整合了IntelliJ平台的有关go语言的编码辅助 ...

pycharm 4注册码

pycharm 4 注册码 (4.x版均可使用) 用户名:pycharmLicense key: ===== LICENSE BEGIN =====2581-D36230T00000QoX2zbDCV ...

Spring Cloud(Dalston.SR5)--Feign 与 Hystrix 断路器整合

创建项目 要使 Feign 与 Hystrix 进行整合,我们需要增加 Feign 和 Hystrix 的依赖,修改 POM.xml 中增加以下依赖项如下: <?xmlversion =&quot ...

warning&colon; assignment from incompatible pointer type &lbrack;enabled by default&rsqb;

kernel 编译产生这个警告的原因是 不兼容指针类型的赋值 这个原因很有可能是因为返回值和正在接受这个指针类型名不相同. // vim arch/arm/mach-omap2/usb-host.c ...

Bellman-ford 算法详解

昨天说的dijkstra固然很好用,但是却解决不了负权边,想要解决这个问题,就要用到Bellman-ford. 我个人认为Bellman-Ford比dijkstra要好理解一些,还是先上数据(有向图) ...

【luogu P3901 数列找不同】 题解

对于区间查询的问题,提供一种思路: 莫队. 莫队是处理区间问题的乱搞神器,尤其是对于离线查询问题,当然也可以做在线查询,比如带修莫队. 对于有的题,莫队是乱搞骗分,而在某些地方,莫队是正解. 这道题来 ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值