python3+requests库框架设计01-自动化测试框架需要什么?
什么是自动化测试框架
关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架。
接口自动化测试框架核心无非是选择 一个用来编写脚本的语言,一个用来模仿http请求的http库,管理脚本的执行工具,选择python,http库可以用requests,脚本管理工具可以用unittest单元测试框架。选择java的话,http库可以用httpclient,脚本管理工具可以用TestNg或者junit
自动化测试框架需要什么
首先我们来思考一下接口自动化测试框架需要些什么?或者说需要实现哪些功能?由哪些部分来组成?
1)输出日志文件
2)测试基类封装
3)配置文件
4)测试脚本
5)管理、执行测试脚本方式
6)测试报告输出
7)第三方插件
8)持续集成
解释:
通过日志输出,我们可以知道测试用例的执行情况:比如请求哪个地址,请求内容是什么,响应码多少,响应内容是什么,断言结果,是否测试通过,如果产生报错,脚本执行失败,可以通过日志快速定位错误发生的位置。
测试基类封装,就是把我们很多需要重复使用的功能,写成一个公共方法,放到一个基本类下面,方便每次调用,例如配置文件增删改查,请求的再封装,响应码断言,响应内容字典迭代等。
需要一个配置文件去控制一些环境信息,比如请求地址,用户信息,保存在测试过程中的一些值,方便后续测试用例的调用,配置文件可以是txt/xml/ini,Python的话一般用ini文件。
测试脚本就是我们对被测接口,具体实现测试的代码,一般我喜欢按照功能模块新建.py文件。
管理和执行脚本的方式,可以使用python单元测试框架unittest。因为我们不可能一个个用例的去执行,通过一个这样的框架,确定所需执行的脚本数量,脚本执行顺序
执行了多少测试case,case的结果如何,这些都需要通过一个测试报告来展示,一般都是通过第三方插件来实现,使用unittest可以使用其拓展HTMLTestRunner来进行生成测试报告
第三方插件,有时候有些功能别人已经写好了,直接拿来用就行,比如上面提到的生成测试报告
持续集成,git,svn,maven,jenkins,比如把脚本放到jenkins上,达到持续集成,一键就能执行测试脚本。自动化测试是指开发,运维,测试都通过持续继承,自己手动去运行代码只能算是半自动
本文的接口自动化测试框架:python3+requests库+unittest+HTMLTestRunner
源码地址需要的可以拿去
python3+requests库框架设计01-自动化测试框架需要什么?的更多相关文章
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
- 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架
老李分享:qtp自动化测试框架赏析-关键字自动化测试框架 QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...
- python3 requests库学习笔记(MOOC网)
奏:HTTP协议对资源的操作 方法说明:GET 请求获取URL位置的资源HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息POST 请求向URL位置的资源后附加新的数据PUT 请求 ...
- golang web框架设计1:框架规划
GO WEB 编程13节,如何设计一个web框架 学习谢大的web框架设计 总体介绍 实现一个简易的web框架,我们采用mvc模式来进行开发. model:模型,代表数据结构.通常来说,模型类时包含查 ...
- Python常见问题 - python3 requests库提示警告InsecureRequestWarning的问题
当使用 requests 库发送请求时报了以下警告 D:\python3.6\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequ ...
- python3+requests库框架设计08-发送邮件
使用python3的email模块和smtplib模块可以实现发送邮件的动能.email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并 ...
- python3+requests库框架设计05-unittest单元测试框架
unittest单元测试框架,主要由四部分组成:测试固件.测试用例.测试套件.测试执行器 测试固件(test fixture) 测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫 ...
- python3+requests库框架设计04-配置文件
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...
- python3+requests库框架设计03-请求重新封装
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个Common文件夹,在文件夹下新建Base_test.py文件,项目结构如下. 具体怎么封装还是要看被测 ...
随机推荐
- java读取配置文件信息
ResourceBundle resource = ResourceBundle.getBundle("shopxx");//不要加.properties后缀,我加了报错 reso ...
- mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- ACM-ICPC 2018 焦作赛区网络预赛 G Give Candies(高精度求余)
https://nanti.jisuanke.com/t/31716 题意 n颗糖果n个人,按顺序给每个人任意数目(至少一个)糖果,问分配方案有多少. 分析 插板法或者暴力打表后发现答案就为2^(n- ...
- hdu 2815 Mod Tree (exBSGS)
http://acm.hdu.edu.cn/showproblem.php?pid=2815 //解 K^D ≡ N mod P #include<map> #include<cma ...
- 安装Blend+SketchFlow Preview for Visual Studio 2012出现错误
安装Blend+SketchFlow Preview for Visual Studio 2012出现如下错误: 首先是这个网址:http://msdn.microsoft.com/en-us/exp ...
- FastJson用法
namespace test { class Program { static void Main(string[] args) { var zoo1 = new zoo(); zoo1.animal ...
- Excel复制粘贴假死
把打印机都删除了试一下. 如果还有问题,就把迅雷监听关掉.
- Redis基础知识 之——发布/订阅
一.说明: 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅 ...
- daemon_init函数:调用该函数把普通进程转变为守护进程
#include <unistd.h> #include <syslog.h> #include <fcntl.h> #include <signal.h&g ...
- linux下有名管道进程通信
一.任务 1.学习mkfifo等函数: 2.了解有名管道的特点.阻塞打开与非阻塞打开等: 3.编写一个关于有名管道进程通信的程序,并运行. 二.相关概念 1.相关函数 创建有名管道的函数是mkfifo ...