前言 为了更好的让openpyxl在工作中使用,将openpyxl的常用操作封装起来,这样不仅复用性高,而且阅读性好 直接上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = openpyxl操作Excel工具类 """ import openpyxl class ExcelUtil: workBook = None workSheet = None def load_…
前言 当你做接口自动化测试时,测试用例逐渐变多情况下,如果所有测试用例都通过代码管理将会使得代码十分臃肿,而且维护成本会很高: 所以我们一般会通过Excel去管理所有的测试用例,而openpyxl库提供了访问Excel的方法 openpyxl简单介绍 一个Python库,用于读取/写入Excel 2010  xlsx .xlsm .xltx .xltm 文件 不能操作 xls 文件 openpyxl简单概念 Workbook:excel工作表 Sheet:工作表中的一张表 Cell:其中的一个单…
python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import hashlib # 待加密信息str = 'asdas89799,.//plrmf'# 创建md5对象hl = hashlib.md5()# Tips# 此处必须声明encode# 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before…
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cookies=loginCookies 此方法需每一次都调用登录方法,并且每一次发送请求都需要传Cookies,不建议使用…
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的http\https请求包.如何模拟请求数据.过滤规则及修改响应数据.如何解决无法抓包问题        以及fiddler接口测试,让大家能应用好工具! 第3章 Requests常见方法实战运用本章重点讲解 get\post请求测试.接口测试中结果处理.上传\下载文件接口测试.请求中header及coo…
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase下有很多测试用例,并且每个测试用例都写了请求地址,请求参数,请求头等相关数据,还有一些断言的数据.如果接口很多的话,这样每个case写都要写,导致后期工作量大,维护起来不方便. 针对上述情况,引入python一个非常好用的第三方库ddt,其作用就是数据驱动,将数据与代码分离,可以把所有的接口相关的测试用例数据…
本次优化: 1.  各级分Package 2.  封装[ReadExcel]类 3.  封装[ReadConfig]类 4.  封装[GetLog]类 5.  引入ddt数据驱动测试,优化测试用例代码 工程如下: 代码分享: get_logger.py # -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: get_logger.py @ide: PyCharm Community Edition @time: 2018-…
1.WriteIni.py import ConfigParser cf = ConfigParser.ConfigParser() cf.add_section("PC_WSDL") cf.set("PC_WSDL", "IP", 'localhost') cf.add_section("VIP_WSDL") cf.set("VIP_WSDL", "release_IP", 'loca…
至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有做异常判断,如果某个环节出问题的话,程序就会终止运行...... 其实一整个流程下来,最大的收获是第一次用python写出了一个实用的东西,这套框架已经可以应付我目前的接口测试工作: 说一说我的学习过程: 这套简单框架也是借鉴了其他人的设计思路,我在开始的时候其实并没有一个很好的思路,甚至无从下手,…
问题: 在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=” 接口中很多入参值需要进行参数化. 解决方案: 1.Python并没有对在字符串中简单替换变量值提供直接的支持. 但是通过使用字符串的 format() 方法来解决这个问题.比如: >>> s = 'hello, this is a {param}!' >>> s.format(param='dog') 'hello, this is a dog!' &…
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: run_test.py @ide: PyCharm Community Edition @time: 2018-12-21 14:45 @blog: https://www.cnblogs.com/gotesting/ ''' import unittest import HTMLTestRunner import time from Common.con…
题目: 基于以下两个接口和数据完成接口自动化测试,并生成测试报告: '''登录 login='http://47.107.168.87:8080/futureloan/mvc/api/member/login'login_data={'mobilephone':18688773467,'pwd':'123456'} 充值 recharge='http://47.107.168.87:8080/futureloan/mvc/api/member/recharge'recharge_data={'m…
本节开始,开始介绍python的接口自动化测试,首先需要搭建python开发环境,到https://www.python.org/下载python 版本直接安装就以了,建议 下载python2.7.11版本,当然,也是可以下载python最新版本的. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,该解释来自百度百科. 当然,为了更好的进行接口测试,需…
未来应用方向:UI自动化测试或接口自动化测试发现的Bug可自动录入禅道,带截图与相关报错信息. #!/usr/bin/env python # -*- coding: UTF-8 -*- '''================================================= @Project -> File :NingMengProject -> PostZentao.py @IDE :PyCharm @Author :孤问万古愁 @Date :2020/3/14 13:13…
废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中使用了101ms,考虑和频繁读写用例数据导致 环境与依赖 名称 版本 作用 python 3.7.8 pytest 6.0.1 底层单元测试框架,用来实现参数化,自动执行用例 allure-pytest 2.8.17 allure与pytest的插件可以生成allure的测试报告 jsonpath…
接口定义: 接口普遍有两种意思,一种是API(Application Program Interface),应用编程接口,它是一组定义.程序及协议的集合,通过API接口实现计算机软件之间的相互通信.而另外一种则是Interface,它是面向对象语言如java,c#等中一个规范,它可以实现多继承的功能.接口测试中的接口指的是API. 为什么要使用接口: 假如公司的产品前端开发还没开发完,接口开发好了. 有天领导说,小王,你测下这个登录功能,要是你不懂接口的话就会对领导说这个功能测不了啊,页面没开发…
引言 很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发接口自动化测试框架呢?相同之处就不说了,先说一下工具的局限性: 1.测试数据不可控:    接口虽然是对业务逻辑.程序代码的测试,而实际上是对数据的测试,调用接口输入一批数据,通过断言代码验证接口返回的数据,整个过程围绕数据测试.    如果返回的数据不是固定的,是变化的,那么断言失败,就无法知道是接口程序错误引起的,还是数据变化引起的,所以就需要进行测…
为了便于维护,python接口自动化测试用例可以利用xlrd模块读取excal表格进行数据分离.我们可以利用xlrd模块的row_values()和cell_value()两种方法读取Excal表格. 一.首先,写一个运行测试用例的Test_Main类: #!/usr/bin/python # -*- coding: UTF-8 -*- import requests import unittest import jsonclass TestDemo(unittest.TestCase): de…
目录 1. 接口定义 2. 基本流程 3. 需求分析 4. 用例设计 5. 脚本开发 6. 结果分析 接口定义: 接口普遍有两种意思,一种是API(Application Program Interface),应用编程接口,它是一组定义.程序及协议的集合,通过API接口实现计算机软件之间的相互通信.而另外一种则是Interface,它是面向对象语言如java,c#等中一个规范,它可以实现多继承的功能.接口测试中的接口指的是API. 为什么要使用接口: 假如公司的产品前端开发还没开发完,接口开发好…
本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+requests测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman.Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足. 测试数据不可控制.比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初…
前言 不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml.今天讲讲如何读取文件数据 Python也可以读取ini文件,传送门 记住一点:测试的数据是不能写死在代码里面的,这个是原则问题 目录 1.读取Text 2.读取Excel 3.读取Yaml 读取Text 需求: 问题解析: 1.打开txt文件 2.读取每一行数据 3.将文件存放在列表中(方便循环读取) #!/usr/bin/python3 with open("E:/test.txt", &qu…
用例读入数据库: #! /usr/bin/python # coding:utf-8 import sys,os from Engine import DataEngine reload(sys) sys.setdefaultencoding( "utf-8") from Engine.XlsEngine import XlsEngine_rd from Engine.SqlEngine import MSSQL dir=os.getcwd() #文件的绝对路径 #用例文件,cased…
代码结构: 目标架构: 1.用例分析器,自动根据接口的参数,类型生成测试用例 2.数据分析器,自动维护接口参数数据,动态数据自动生成,返回结果自动查询判断 3.核心调用引擎,分SOAP和HTTP两种,调用用例,返回接口调用的结果 4.报告输出,统计用例通过率,错误日志,数据库持久化,持续集成 目前实现功能: 核心调用引擎,数据分析器(demo) 1.用例结构(更新) excel分两个sheet,sheet1中存放用例,结构如下 sheet2中存放测试环境host,接口wsdl地址,接口方法间的映…
代码实现 1.XlsEngine.py # -*- coding:utf-8 -*- __author__ = 'yanghaitao' import xlrd import xlwt class XlsEngine_rd(): """ The XlsEngine is a demo class for excel openration Just for some basic test or the using or the 3rd class in python "…
一.测试需求描述 对服务后台一系列SOAP接口功能测试 参数传入:根据接口描述构造不同的参数输入值(Json格式) 二.程序设计 通过Excel配置具体的测试用例数据 保存参数为Json格式,预写入预期结果 将接口返回结果与预期结果比较,以颜色区分成功或失败,并将结果保存进Excel中 三.实现方法 1.选用python脚本实现 2.采用Excel表格管理测试数据,包括用例的管理.测试数据录入.测试结果显示等等,这个需要封装一个Excel的类. 3.调用SOAP接口采用python的suds模块…
在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中params的值已经按照requests的要求写成了字典格式): 后来突然想到一个原因:python从excel中解析出来的数据类型不是字典!!,所以无法传递给requests当做请求参数 接着做了如下实验: 运行结果: 果然,数据类型是'str',不是'dict' 知道原因就好办了,利用json库…
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py,然后放到python安装路径下的lib目录中. (我用的python3,是下载的虫师写的那个,下载地址-->链接:https://pan.baidu.com/s/101y-X--o6iSd9WTDv5K4XQ 密码:24xh) 1.执行单个.py文件中的测试用例 # -*-coding:UTF:8…
之前学习了使用jmeter+ant做接口测试,并实现了接口的批量维护管理(大概500多条用例),对"接口"以及"接口测试"有了一个基础了解,最近找了一些用python做接口测试的资料,一方面为了学习下如何使用python进行接口测试(如何做出一个简单基础的接口测试框架),另一方面也为了锻炼下如何用python写代码(接触python也有一段时间了,但是每次自己编程总有种提笔忘字的感觉,真是欠练!!) 首先,用python做接口测试,主要用到就是requests库和j…
很多时候,在调用接口时,需要对请求进行签名.需要用到unix时间戳. 在python里,在网上介绍的很多方法,得到的时间戳是10位.而java里默认是13位(milliseconds,毫秒级的). 下面介绍python获得时间戳的方法: 1.10位时间戳获取方法:强制转换是直接去掉小数位. import timea = time.time()print(a)print(int(a)) 1554949545.15074041554949545 2.13位时间戳获取方法: 默认情况下python的时…
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: 这个模块不能通过pip安装,只能下载安装,下载地址如下: python2.x版本:http://tungwaiyip.info/software/HTMLTestRunner.html python3.x版本:http://hzqldjb.blog.51cto.com/9587820/1590802…