Python接口自动化
Python接口自动化
weixin_44990801
这个作者很懒,什么都没留下…
展开
-
python接口自动化测试 第9章 把测试结果写进excel文件
python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。(参考博客:https://www.cnblogs.c原创 2020-09-26 21:28:19 · 184 阅读 · 0 评论 -
python接口自动化测试 第8章 根据excel中的期望输出是否存在请求返回的响应来判断用例是否执行成功
1.首先在excel中的expectValue列填好预期结果值这里判断接口成功的依据是预期结果值是否存在于接口返回的数据中。首先,要知道在之前封装的get/post请求方法中返回的是‘str’,也就是json格式的字符串而从excel文件解析出的expectValue也是‘str’,这样就可以将两者对比,来判断expectValue是否存在于接口返回的数据中使用if进行判断,一个简单的demo:# coding:utf-8import requests, jsonurl = 'http:/原创 2020-09-26 21:28:02 · 164 阅读 · 0 评论 -
python接口自动化测试 第7章 从excel中读取params参数传入requests请求不生效问题的解决过程
在第六目把主函数写好了,先来运行一下主函数从截图中可以看到,请求参数打印出来了,和excel中填写的一致但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中params的值已经按照requests的要求写成了字典格式);后来突然想到一个原因:python从excel中解析出来的数据类型不是字典!!,所以无法传递给requests当做请求参数接着做了如下实验:运行结果:果然,数据类型是‘str’,不是‘dict’知道原因就好办了,利用json库的l原创 2020-09-26 21:27:47 · 207 阅读 · 0 评论 -
python接口自动化测试 第6章 主函数
把操作excel的方法封装好后,就可以用准备好的接口用例来循环遍历了我的接口测试用例如下主函数代码:run_handle_excel.py# coding:utf-8from base.run_method import RunMainfrom util.handle_excel import *class RunTestCase: def __init__(self): self.Runmain = RunMain() # 实例化调用get/post请求基原创 2020-09-26 21:27:26 · 95 阅读 · 0 评论 -
python接口自动化测试 第5章 把操作excel文件的方法封装起来
前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象、行数、单元格数据的方法进行封装,方便后面调用handle_excel.py# coding:utf-8import xlrdclass HandleExcel: """封装操作excel的方法""" def __init__(self, file='E:\InterfaceTest_Framework\excel_json_demo\demo1.xlsx', sheet_id=0):原创 2020-09-26 21:27:06 · 64 阅读 · 0 评论 -
python接口自动化测试 第4章 利用unittest生成测试报告
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py,然后放到python安装路径下的lib目录中。(我用的python3,是下载的虫师写的那个,下载地址–>链接:https://pan.baidu.com/s/101y-X–o6iSd9WTDv5K4XQ 密码:24xh)1.执行单个.py文件中的测试用例# -*-coding:UTF:8-*-原创 2020-09-26 21:26:47 · 151 阅读 · 0 评论 -
python接口自动化测试 第3章 pycharm执行测试用例时需要使用的姿势(解决if __name__ == “__main__“:里面的程序不生效的问题)
1.只运行某一条case把光标移动到某一条case后面,然后右键,选择“Run…”来运行程序此时,pycharm会只运行光标所在位置的这一条case2.如果想执行全部case,需要把光标移动到 “if name == “main”: ”后面,一般情况下会运行全部的case;但是如果在 “if name == “main”: ”下面添加了测试套件,同样把光标移动到 “if name == “main”: ”后面,会发现还是执行了全部的case,也就是 “if name == “main”: ”下面的原创 2020-09-26 21:26:30 · 360 阅读 · 0 评论 -
python接口自动化测试 第2章 unittest框架基本应用
在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo1.unittest简单用法# -*-coding:UTF:8-*-import unittestclass TestMethod(unittest.TestCase): # 定义一个类,继承自unittest.TestCase # 每次执行用例前执行setUp(),可以在这里做一些初始化的工作 def s原创 2020-09-26 21:26:07 · 58 阅读 · 0 评论 -
python接口自动化测试 第1章 requests使用和基本方法封装
首先,用python做接口测试,主要用到就是requests库和json库。1.先看一个简单的demoget请求# -*- coding: UTF-8 -*-import requestsget_url = 'http://localhost:7001/XXX'data = {'userCode':'csqy123456','userPWD':'123456'}r = requests.get(url=get_url, params=data, timeout=5) #产生一个名为r的原创 2020-09-26 21:25:40 · 199 阅读 · 0 评论 -
python之requests接口自动化
在进行接口自动化测试时,有好多接口都基于登陆接口的响应值来关联进行操作的,在次之前试了很多方法,都没有成功,其实很简单用session来做。1、在登陆接口创建一个全局session# -*- coding: utf-8 -*-import requests'''在登陆模块创建一个全局session,在其他接口操作时带入登陆时的session,保持session的一致性'''s = requests.Session() #定义一个全局sessionclass testlogin(): l原创 2020-09-25 08:57:51 · 75 阅读 · 0 评论 -
Python之Http Post请求四种请求体
前言前几天一个刚接触Python不深的朋友问我的Python的xml格式Post请求怎么发送,刚好最近也在学习Http请求相关的内容,所以决定总结一下各类Post请求的Python实现。这里说的各类Post请求主要包含json格式、xml格式、文件上传(form-data)、及默认传递的urlencoded。在开始介绍相关的Python用法之前,我们首先我们来了解一下HTTP的报文结构。HTTP的报文结构上面这张图是Fiddle捕获的一个实际请求报文,它清晰的展示了HTTP 消息的结构。详情如下:原创 2020-09-25 08:58:45 · 181 阅读 · 0 评论 -
Python 接口测试之接口请求方法封装
目录引言请求方法封装执行测试总结请求方法封装下面就直接附上代码:__author__ = 'Leo' import requestsimport json class ApiRequest(object): """ 请求方法 """ # 请求方法get def get_method(self,url,data=None,header=None): if header is not None: .原创 2020-09-23 08:50:41 · 120 阅读 · 0 评论 -
python接口自动化遇到的报错及解决方法
报错文:AttributeError: 'str' object has no attribute 'decode'找到错误代码(line146):query = query.encode(errors=‘replace‘)解决方法:把decode改为encode即可。原创 2020-08-27 17:13:12 · 728 阅读 · 0 评论 -
python接口自动化 post请求,body 带headers参数
import requestsimport json host = "http://196.XX.XX.XX:0000"endpoint=r"/api/QQ" url = ''.join([host,endpoint])headers = \ { "X-Member-Id": "23832170", "X-Region": "1100", "X-Channel": "0", "Content-Type": "application/json;charset=原创 2020-08-26 14:21:18 · 2829 阅读 · 0 评论