搭建接口自动化框架(附源码)
摘要:按数据和代码分离的原则,搭建数据驱动形式的接口自动化测试框架,目录如下: 各层的作用: conf:存放配置文件 test_data:存放测试数据 test_result:存放测试结果 testcase:存放测试用例 tools:存放公共方法 run.py:运行所有的测试用例 requirements
阅读全文
记录使用requests发送get请求时,参数名相同,参数值不同,只有一个参数拼接到了url后面的问题
摘要:现象如图:传递了2个id参数却只有一个参数拼接到了url后面 产生原因:字典的值不可重复,导致同名参数会被覆盖。 解决:使用get请求的另外一种传值方式传array数组,也就是用python里面的list传值。参考上海悠悠博客:https://www.cnblogs.com/yoyoketang/p
阅读全文
requests通过接口下载文件
摘要:利用requsts请求接口下载文件的操作 测试接口如图: fiddler抓包信息如下:请求头里面需要传递登录成功的token,才能去访问excel导出的接口。 思路就是先登录获取token,再去请求excel导出接口: import requests def login(): login_url =
阅读全文
requests通过接口上传文件
摘要:如何利用requests上传文件的操作: 测试接口如图: 抓包发现post请求需要传递参数如下: 代码实现如下:需要带上cookies信息,files需要传递文件名称,传递文件的路径以二进制方式传递,文件的格式。 import requests url = "http://admin.cdnzutu
阅读全文
写入excel数据报错:ValueError: Cannot convert {'code': 0, 'msg': 'login success!', 'username': 'test',} to Excel
摘要:今天在把测试结果以json格式写回excel表格中的时候报错,ValueError: Cannot convert {'code': 0, 'msg': 'login success!', 'username': 'test',} to Excel,无法转换到excel 产生原因:excel只支持字
阅读全文
接口自动化使用session会话解决数据依赖问题
摘要:这里还是以课堂派登录的接口为例子。 参考用法requests官方文档地址:https://2.python-requests.org//zh_CN/latest/user/advanced.html#advanced 如上图所示先实例化一个session对象,通过里面的session方法发送post
阅读全文
接口自动化实现用例可配置
摘要:首先说下为什么要做用例可配置,有时候跑测试用例,并不需要全部都运行一遍,只需要运行部分用例就行了。这个时候就需要你在设计用例的时候,做到用例可配置化。说白点就是可以选择执行部分用例,或者默认运行全部测试用例。 假设我有测试数据如下,里面有cese_id,method,url,data,headers
阅读全文
接口自动化使用setUp解决数据依赖问题
摘要:setUp是用例运行的前置条件,每次在运行用例的时候,都会优先运行setUp函数,我们可以运用setUp的这一特性,来解决数据依赖问题。 如下图: 将登录的请求放到了setUp函数里面,每次运行前都会发起登录请求。然后再将需要用到的cookie当做参数传递到了下一个请求中。从而解决了数据依赖问题。
阅读全文
接口自动化使用反射解决数据依赖问题
摘要:首先我们先来看什么是python中的反射? 反射它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。它有四个重要的方法: getattr 获取指定字符串名称的对象属性 setattr 为对象设置一个对象 hasattr 判断对象是否有对应的对象(字符串) delattr 删除
阅读全文
接口自动化使用global全局变量解决数据依赖问题
摘要:今天在使用global全局变量解决数据依赖的问题时,睬了一个大坑。unittest框架执行顺序的问题,unittest默认加载脚本的顺序是:根据ASCII码的顺序加载,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。 前面不知道这个规则,导致报错如
阅读全文
python+unittest+requests接口自动化面试总结
摘要:写在总结前的话,自动化用例脚本是根据你手工的用例脚本,用代码代替手工执行的,不是说随便给你个接口,啥都不知道,就瞎JB开始写脚本了。 写之前先抛出几个问题:1:接口自动化测试框架分为几层? 2:如何解决接口数据依赖问题,请举例说明? 3:如何做到数据和代码分离? 4:如何实现用例可配置(可配置指的是
阅读全文
解决excel路径可配置问题
摘要:代码写好之后拿到别人的电脑上,就不能运行了。这是因为参照物在变,换句话说就是路径变了。我们要针对性的写一个获取路径的方法: import os BASE_PATH = os.path.dirname(os.path.abspath(__file__)) print(BASE_PATH) import
阅读全文
封装通用的接口请求
摘要:requests小技巧: 将get和post封装到一起,根据请求方式不同,决定调用的方法。调用的时候只调用一个就可以了。 '''json.dumps()得到一个字符串''''''.json()得到一个字典''''''json.loads()函数是将json格式数据转换为字典''' '''发送http
阅读全文
在使用json.dumps()格式化响应数据时报错TypeError: Object of type Response is not JSON serializable
摘要:今天在处理接口返回数据格式化的时候报错:TypeError: Object of type Response is not JSON serializable。响应的对象不可序列化 解决: 打印出它响应结果是什么类型,发现是个对象。 然后先把响应结果转为json,再去格式化响应内容。 如下:
阅读全文