前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种,功能性的接口自动化框架. 一.简单介绍 环境:Mac.Python 3,Pytest,Allure,Request 流程:读取Yaml测试数据-生成测试用例-执行测试用例-生成Allure报告 模块类的设计说明: Request.py 封装request方法,可以支持多协议扩展(get\post\p…
废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中使用了101ms,考虑和频繁读写用例数据导致 环境与依赖 名称 版本 作用 python 3.7.8 pytest 6.0.1 底层单元测试框架,用来实现参数化,自动执行用例 allure-pytest 2.8.17 allure与pytest的插件可以生成allure的测试报告 jsonpath…
前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级,增加了自动生成testcase等,一起来看看吧!-- 一.简单介绍 环境:Mac+Python 3+Pytest+Allure+Request 流程:Charles导出接口数据-自动生成测试用例-修改测试用例-执行测试用例-生成Allure报告 开源: 点击这里,跳转到github 备注⚠️:Ch…
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系.其中接口协议分为HTTP,RPC,Webservice,Dubbo,RESTful等类型. 接口测试流程 1.需求评审,熟悉业务和需求 2.开发提供接口文档 3.编写接口测试用例 4.用例评审 5.提测后开始测试 6.提交测试报告 两种常见的 HTTP 请求方法:GET 和 POST 二.项目说明…
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整个思路和代码框架 代码封装后当成模块引用!!! 步骤一:引用Requests模块开展接口测试 Python Requests快速入门 :http://cn.python-requests.org/zh_CN/latest/ 如何利用requests进行接口测试,可以根据以下demo进行相应改造 #c…
转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的是java语言,但对于一个学java,却在学python的我来说,觉得python比起java更简单些,所以,我决定自…
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的是java语言,但对于一个学java,却在学python的我来说,觉得python比起java更简单些,所以,我决定自己写python的接口自动化测试框架,由于本人也是刚学习python,这套自动化框架目前已经基本完成了,于是进行一些总结,便于以后回顾温习,有许多不完善的地方,也遇到…
首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https://www.python.org/downloads 2.下载pycharm 软件. 二.开始创建python接口自动化框架: 1.这是我创建的框架中的各个文件夹,分别有config  配置文件夹.fengzhuang   将接口用get post  两种传输方式进行封装并自动来区分执行. 2.log…
摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接口自动化测试单有脚本是不够的,我们还需要批量跑指定接口,生成接口运行报告,定位报错接口,接口定时任务,邮件通知等功能.批量跑指定接口:我们可以利用ant批量跑指定目录下的Jmeter脚本生成接口运行报告:使用Jmeter(extras目录下)自带的jmeter-results-detail-repo…
自己曾经写过一个接口自动化的框架,并做了一版本的优化,一直觉得做的还不错,且没依赖现有的框架. 最近因为一些工作的原因,开始又思考之前写的框架的一些缺点及如何优化,所以找到比较有名的httprunner源码来比较和学习下 1.httprunner 提供了比较便利的脚手架代码及命令行运行方式 cli.py脚本里: parser = argparse.ArgumentParser(description=__description__)parser.add_argument 提供比较多的命令参数,去…
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程是什么? 确定接口测试使用的工具----->配置需要的接口参数----->进行测试----->检查测试结果----->生成测试报告 测试的工具:python+requests 接口测试用例:excel 一.接口框架如下: 1.action包:用来存放关键字函数 2.config包:用来…
最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合利用,适合自 己才是最好的嘛.整体思路是Jmeter可以做压力测试,也可以做接口测试:Ant是基于Java的构建工具,完成脚 本执行收集结果并生成报告:Jenkins也是基于Java开发的持续集成工具. JDK安装 下载安装包,解压到安装目录,本次用的是jdk1.8版本. 下载地址:https://…
本次主要尝试搭建接口自动化框架,基于 unittest+HTMLTestRunner 框架主要模块: config: 存放配置文件 lib: 封装了一些接口前置函数:处理各种事物 log: 存放生成的日志文件 report: 放置生成的html测试报告 suite: 套件运行器 testcase: 存放测试用例 util: 封装了一些公共函数(例如封装了日志模块,操作mysql函数,tool工具类等) 剩下的就看代码吧: 1 import configparser 2 import os 3 f…
这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了CreateTest.test_main()流程逻辑 2. 优化了testcase.xls文件格式 3. 添加了生成XML文件测试报告 代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- # 获取测试用例文件excel import xlrd impo…
背景: 某项目有多个接口,之前使用的unittest框架来管理测试用例,将每个接口的用例封装成一个py文件,接口有数据或者字段变动后,需要去每个py文件中找出变动的接口测试用例,维护起来不方便,为了便于接口变动后维护,使用excel来管理测试用例,接口有变动不需要修改代码,只需要维护excel即可. 思路: 为了方便维护测试用例,一个接口的测试用例使用一个excel文件来管理,每个excel文件中有两个sheet页,第一个sheet页是接口的基本信息,包括接口名称,地址和请求方式,第二个shee…
整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport  多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLReport 主要包含以下几个模块:  1. Business:与业务相关的公共模块 get_login_token:接口自动化过程中需要实时获取token,并将实时获取的token传给下个接口作为请求参数 from Business.url import url_login import reque…
一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高 allure-pytest是python的一个第三方库.用于连接pytest和allure,使它们可以配合在一起使用. allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果.该json格式结果可以用…
这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了CreateTest.test_main()流程逻辑 2. 优化了testcase.xls文件格式 3. 添加了生成XML文件测试报告 #!/usr/bin/env python # -*- coding: utf_8 -*- # 获取测试用例文件excel import xlrd import jso…
介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gherkin文件,该文件描述了被测试的功能 与Cucumber不同的是测试用例不需要用Java编写,并且被完整的描述在Gherkin文件中 通过Karate,您可以编写任何类型的Web服务端的测试脚本,并检查响应是否符合预期 Karate的验证引擎可以灵活的比较两个JSON或XML文件内容,不受空格和数据…
在上一篇中的自动化框架中没有放上自动发送测试结果到邮箱的功能,在这篇文章中在补一下,哈哈 1.上一篇的代码就不在一一介绍了,本篇只介绍发送邮件的功能代码 2.在public common 文件夹中创建一个sendmail.py文件, 用来存储发送邮件的代码 from email.mime.text import MIMETextfrom email.header import Headerimport smtplibimport timeimport osdef send_mail(file_n…
接口测框架 安装教程 需要3.5及以上版本的python pip install -r requirements.txt 使用说明 运行manage.py创建项目 创建的项目在projects目录下 在项目的cases目录下编写测试用例,可以参考litemall项目中如何编写测试用例 执行项目目录下的run.py运行所有测试用例 一.config配置文件 三个文件: const_template.py run_template.py setting.py 文件代码: const_template…
一.在搭建接口自动化测试框架前,我觉得先需要想明白以下几点: ① 目前情况下,绝大部分接口协议是http,所以需要对http协议有个基本的了解,如:http协议请求.响应由哪些部分组成,常用的method,对应的请求传参方式等等 ② 需要对接口发送请求,所以要对可以发送http请求的模块比较熟悉,如python 的requests.urllib 等 ③ 使用的数据承载工具,如使用excel.mysql.oracle 等 ④ 实现哪些需求,如 在用例层面控制是否执行用例,响应信息.执行结果.失败原…
背景:因为把传入接口参数.组建测试用例.执行测试用例和发送报告,都放入一个.py文件对于接口的使用非常不灵活就需要数据和接口业务进行分离让代码之间的 耦合性降低.和实现接口的分层管理,所以需要对代码进行封装处理. 接口分层思想: cms_api:组建并发送接口请求 config:放所有接口的入参信息 report:放置运行所有测试用例生成的报告 run:自动加载所有的测试用例.并且运行 testcase:继承unittest单元测试框架.组建接口测试用例 utils:工具类.发送邮件和生成报告模…
框架链接:https://www.jianshu.com/p/e31c54bf15ee 目前是基于他的框架做了些改动(主要是session.action()和json格式传参). 后续优化,应该主要思考怎么更好的做接口依赖.更全的设定接口断言.以及一些规范. 主要还是要和工作需求接轨.…
1.首先安装pytest pip install pytest 2.编写单测用例 在pytest框架中,有如下约束: 所有的单测文件名都需要满足test_*.py格式或*_test.py格式. 在单测文件中,可以包含test_开头的函数,也可以包含Test开头的类. 在单测类中,可以包含一个或多个test_开头的函数. 此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行. import pytest # content of test_sample.py…
版权说明 本框架系本人结合一些实践经验和开源框架设计思想,在家基于兴趣爱好独立完成的代码开发. 源码只保存在私人电脑,办公电脑上无.github开源与公司无关,先把关系撇清,不涉及侵权. 嘘. 框架定位 首先最重要的就是学习交流,无商业用途.其次本框架有一定实用价值,可作为工作辅助工具,解决现有技术无法处理的问题.最后可以优化改造投入生产实用(若有更好的idea请务必告诉我,求知若渴). 设计思想 技术栈 说明文字为本框架中用途. python:脚本语言. requests:http请求库. a…
项目github地址: https://github.com/tianchiTester/API_AutoFramework 这套框架的报告是自己封装的 1.测试基类TestBase: 接口请求的testcase类需要继承此类去读取properties文件 package com.qa.base; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; im…
简介: HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. HttpRunner是一个基于Python开发的测试框架,可以运行在Mac.Linux.Windows系统平台上, [第一步]:安装 Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本,并使用 Travis-CI 进行了持续集成测试,测试覆盖的版本包括 2.7/3.4/3.5…
这套框架的报告是自己封装的 由于之前已经通过Extentreport插件实现了Testng的IReport接口,所以在testng.xml中使用listener标签并指向实现IReport接口的那个类就可以替换原始的testngreport testng配置如下: 单suite,单test test name 指向你写的testCase,methods放入需要执行的方法 <?xml version="1.0" encoding="UTF-8"?> <…
这套框架的报告是自己封装的 一般token会在登录接口返回结果中呈现,从代码层面获取token的方式有很多种,我是使用jsonpath这个json路径语言去匹配token所在路径的key值 package com.qa.tests; import com.alibaba.fastjson.JSON; import com.qa.base.TestBase; import com.qa.Parameters.postParameters; import com.qa.restclient.Rest…