文章目录

  • 一、前言
  • 二、框架搭建流程
    • 2.1 项目创建
    • 2.2 README文件
    • 2.3 .gitignore文件
    • 2.4 什么是测试框架?
    • 2.5 分层设计
    • 2.6 框架搭建
      • 2.6.1 公用目录(common)
      • 2.6.2 测试用例目录(testcase)
      • 2.6.3 测试数据目录(data)
      • 2.6.4 测试报告目录(reports)
      • 2.6.5 配置文件目录(config)
      • 2.6.6 日志存放目录(logs)
      • 2.6.7 被测函数目录(funcs)
      • 2.6.8 运行文件(run.py)
    • 2.7 测试函数
    • 2.8 执行文件
    • 2.9 测试报告
    • 2.10 路径处理
    • 2.11 知识小结

一、前言

  本文章主要讲解Python接口自动化测试框架模型的搭建,主要介绍如何设计框架,以及基础的框架运行等,除此之外下方有系列文章的传送门,还在持续更新中,感兴趣的小伙伴也可以前往查看,话不多说,让我们一起看看吧~

系列文章:
  系列文章1:【Python自动化测试1】遇见Python之美
  系列文章2:【Python自动化测试2】Python安装配置及PyCharm基本使用
  系列文章3:【Python自动化测试3】初识数据类型与基础语法
  系列文章4:【Python自动化测试4】字符串知识总结
  系列文章5:【Python自动化测试5】列表与元组知识总结
  系列文章6:【Python自动化测试6】字典与集合知识总结
  系列文章7:【Python自动化测试7】数据运算符知识合集
  系列文章8:【Python自动化测试8】流程控制语句讲解
  系列文章9:【Python自动化测试9】函数知识合集
  系列文章10:【Python自动化测试10】文件基础操作
  系列文章11:【Python自动化测试11】模块、包与路径知识合集
  系列文章12:【Python自动化测试12】异常处理机制知识合集
  系列文章13:【Python自动化测试13】类、对象、属性与方法知识合集
  系列文章14:【Python自动化测试14】Python自动化测试基础与进阶练习题
  系列文章15:【Python自动化测试15】unittest测试框架的核心概念与作用
  系列文章16:【Python自动化测试16】测试用例数据分离
  系列文章17:【Python自动化测试17】openpyxl二次封装与数据驱动
  系列文章18:【Python自动化测试18】配置文件解析与实际应用
  系列文章19:【Python自动化测试19】日志系统logging讲解

  

二、框架搭建流程

2.1 项目创建

  框架搭建前必定是以一个项目的形式存在的,故此我们需要新建一个项目,你可以通过Open打开原有项目的一个包,以此来独立成一个项目,也可以直接使用New Project来创建一个新项目。

2.2 README文件

  在任何一个项目中,我们都可以看到README这个文件,README文件是一个项目的说明文档,其中会包括基础的文件说明、框架搭建及维护的作者,框架认知、框架体系、框架结构、框架作用、项目说明、代码使用规范和注意事项等内容,具体内容通常依据个人或项目需要进行文件说明,文件可以采用md形式,也可以采用txt形式,可以附上一些说明,例如:

2.3 .gitignore文件

  通常而言,我们项目中的代码需要进行版本控制,行业中常见的是svn与git,.gitignore文件用于git版本控制,而.gitignore文件的作用是:将特定的文件移除,不会进入至版本控制系统当中,不会进行上传。

  比如代码运行所产生的缓存文件,这些缓存文件大多数会放入至__pycache__文件夹中,故此我们可以选择该文件夹,不纳入版本控制系统。还有项目创建所生成的,idea/文件夹,我们也可以不纳入版本控制。

  在真实项目中需要特别注意,涉及到敏感数据,绝对不要放入至版本控制当中,例如测试账号、数据库地址等等,这样会暴露项目内容,严重会追究法律责任,如果你是在看本人文章的读者且正在使用公司项目实战,请务必小心!

   不纳入版本控制的做法很简单,只需要在.gitignore文件中添加对应的文件夹或文件即可,添加一个后并换行可添加第二个,则代表该文件或文件夹不纳入版本控制,后续的具体内容有兴趣大家可以继续了解。

2.4 什么是测试框架?

  框架在生活中也能够比较常见,例如建造一座高楼大厦时,我们需要固定好这个大楼的外层结构,确保建造时大楼是笔直的,确保不会晃动,这就是高楼大厦的框架,而房屋的室内室外等均属于填充内容。

  测试框架也是如此,我们需要搭建起一个自动化的测试框架,可重复设计和利用的内容,写的代码就是在进行框架填充,代码中会包括:

"""
工具、组件。-- 专门处理excel的工具、记录logger日志的工具、生成日志的工具等等
"""

  框架即意味着规则、规矩,任何人使用框架不能够违背,框架没有标准答案,只要你自己是框架的设计者,那么就是自己掌握话语权,好比我们在导入其他人所写的框架时,也必须遵守它们框架的语法、规则。
  

2.5 分层设计

  什么是分层设计?分层设计的概念是如何进行模块与包的划分,每一个目录就好比一个部门,各司其职,最后的结果就会接近于完美,而独立划分就是分层设计的思想与理念。

  为什么需要进行分层设计?相信大家通过下图能够有基本概念,分层设计就是为了更好的进行框架整合、代码管理与维护,在某个"目录"出现异常时,我只需要对特定的"目录"进行管理即可有效解决问题,而不会对其他目录进行牵连。

"""
框架结构
- common      公共方法目录
- testcase    测试用例目录
- data        测试数据目录
- reports     测试报告目录
- config      配置文件目录
- logs        日志系统目录
- funcs       被测函数目录
- run.py      项目启动文件"""

  

2.6 框架搭建

2.6.1 公用目录(common)

  新建一个Python package,命名为common,之所以我们要创建Python包而不是一个文件夹的主要原因是Python package中有__init__,如果没有这个文件,可能会在导入文件时失败。故此选择Python package。通常而言,如果这个文件夹里有Python文件,那么我们会使用Python package进行创建。

  公用目录是通用的代码内容,可以理解成无论该框架如何进行移动、修改,公用目录内容均可以保持不变且在其他项目中,公用目录的内容可以完全复制过去进行使用。

2.6.2 测试用例目录(testcase)

  testcase中存放的主要是自动化测试用例代码,里面包括各类的函数,因为存在py文件,故此我们需要Python package新建。

2.6.3 测试数据目录(data)

  data中主要存放的是测试数据,数据可以是Excel的形式,也可以是Python模块的形式,故此我们这里的创建还是使用Python package

2.6.4 测试报告目录(reports)

  测试报告的存放路径在reports,最终的测试报告不是Python模块,大多数是以html的方式存在的,在网页中可展示基础的数据信息和图表类信息,故此我们在创建时只需要建普通的文件夹即可,而不需要Python package

2.6.5 配置文件目录(config)

  配置文件目录为config,可能会包括数据库地址、用户名密码等常见内容,配置文件有可能会存在Python模块,我们仍然选用Python package

2.6.6 日志存放目录(logs)

  日志存放目录会存放关于程序运行的日志内容,同样使用Python package创建。

2.6.7 被测函数目录(funcs)

  被测函数目录主要是用于Python函数的代码存放,存放开发的Python函数文件,使用Python package创建。

2.6.8 运行文件(run.py)

  在顶级目录创建Python文件,名为run,当执行run.py时则会执行所有的测试用例,主要起到程序运行作用。

2.7 测试函数

  在funcs下创建login.py,完成被测函数的填写,在testcase下创建test_login,补充一条测试用例:

"""login.py 被测函数"""
def login(username=None, password=None):if username is None or password is None:return {"code": 400, "msg": "用户名或密码为空" }if username == "萌笑天" and password == "123456":return {"code": 200, "msg": "登录成功" }return {"code": 300, "msg": "用户名或密码错误" }
""" test_login.py 测试用例"""
import unittest
from funcs.login import loginclass TestLogin(unittest.TestCase):def test_login_success(self):username = "萌笑天"password = "123456"expected = {"code": 200, "msg": "登录成功" }actual = login(username, password)self.assertEqual(expected, actual)

  如上图所示,执行结果为一条测试用例,耗时0.003s,测试通过。代表流程已经走通了。
  

2.8 执行文件

  在run.py添加执行代码,并预备测试报告生成

import unittest
from unittestreport import TestRunner
from datetime import datetimesuite = unittest.defaultTestLoader.discover("testcase")# 当前时间
data_str = str(datetime.now().strftime("%Y-%m-%d__%H-%M-%S"))
# 测试报告名称
reports_name = data_str + "项目框架演示测试报告.html"runner = TestRunner(suite,tester="萌笑天",report_dir="reports",filename=reports_name)runner.run()

2.9 测试报告

  文件输出到了reports:

  上半部分展示了一个基本的数据汇总,用例的总数、成功失败、错误等用例数量的具体数值,但这非实战阶段,故此测试用例只有1条演示的用例

  中间的部分会有一个图表,图表的形式呈现上述的数据

  最下层是详细信息,可以查看哪个类、哪个方法测试通过还是失败,可查看详情,也支持结果的筛选:

2.10 路径处理

  我们在项目中还需要使用到路径处理,有些时候我们需要读取对应的路径来获取我们想要的文件或数据,那么需要使用到os路径模块,此处不过多的解释,大家可以先行简单了解,在后续的实战阶段中会重点讲解。

import os
# 获取当前文件路径
current_path = os.path.abspath(__file__)# 获取config文件夹路径
config_dir = os.path.dirname(current_path)# 项目根目录
root_dir = os.path.dirname(config_dir)# data 目录
data_dir = os.path.join(root_dir, "data")# xlsx文件目录
case_path = os.path.join(data_dir, "cases.xlsx")

2.11 知识小结

"""
框架执行:
第一步:框架设计、模块
第二步:在cases里面写自动化测试用例
第三步:在run.py收集测试用例,生成测试报告后续实战阶段讲解:
第四步:封装通用的测试工具,公共代码
第五步:在用例当中调用log变量以增加日志
第六步:实现excel的数据驱动
"""

  
  

  好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!

  
  

【Python自动化测试20】接口自动化测试框架模型搭建相关推荐

  1. Python+Pytest+tox 接口自动化测试框架

    目录 前言: 1. 该框架重构自之前的框架 2. 目录截图 一.tox简介和使用介绍 1. tox简介 2. 配置文件tox.ini 二.框架搭建 1. 封装接口请求 2. 配置接口信息 3. 维护测 ...

  2. 通过 YAPI + Python Flask 实现接口自动化测试

    背景 公司目前主打两款陌生人社交产品,暖聊和 CP,两款产品都有 Android 和 iOS 端.暖聊涵盖了音视频匹配,交友大厅,聊天室,视频直播,广场,家族,IM 消息和任务中心八大模块,共计 84 ...

  3. Python之flask结合Bootstrap框架快速搭建Web应用

    目录 前言 安装bootstrap扩展 模板的继承 总结 前言 Flask是一个基于Python开发,依赖jinja2模板和Werkzeug WSGI服务的一个微型框架.Werkzeug用来处理Soc ...

  4. python+requests+pytest 接口自动化框架(一)

    目录 一.Pytest详解以及常用的插件安装 二.Pytest默认的测试用例的规则 三.Pytest用例运行方式以及参数 1.命令行模式运行 命令:pytes 2.主函数模式运行 3.基于pytest ...

  5. python+requests+pytest 接口自动化框架(四)

    目录 一.requests库简介 二.requests库常用方法 三.request()返回的response对象 四.实战案例 post(url, data=None, json=None, **k ...

  6. Python+unittest+requests 接口自动化测试框架搭建 完整的框架搭建过程 实战

    一.Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00--框架结构简解 首先配置好开发环境,下载安装Python并下载安装pycharm ...

  7. 浅谈Python+requests+pytest接口自动化测试框架的搭建

    框架的设计思路 首先要明确进行接口自动化需要的步骤,如下图所示: 然后逐步拆解需要完成的工作: 1)了解分析需求:了解接口要实现的功能 2)数据准备:根据开发文档确定接口的基本情况,知晓接口的url. ...

  8. 用robot framework + python实现http接口自动化测试框架

    前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测试框架,以至于后期rd每修改一个bug,经常导致之前没有问题的case又产生了 ...

  9. python接口测试_Python接口自动化测试框架实战开发(一)

    目录 一丶叙述 二丶接口基础知识 三丶接口测试工具 四丶Fiddler的使用 五丶unittest使用 六丶mock服务入门到实战 七丶接口自动化框架设计到开发 一丶叙述 1.项目介绍 整个项目分为四 ...

最新文章

  1. 系统学习NLP(三)--NLP入门综述
  2. css的repaint和reflow
  3. mac 上搭建gitlabel_在Mac OS X中用Docker部署GitLab
  4. 年少成名的我并没有放弃自己,谁敢说她\他文章比我写的好?!,不服来战!...
  5. 《c语言从入门到精通》看书笔记——第13章 预处理
  6. python和c#哪个简单-最近学习 Python 的一些感触 (对比 C#)
  7. 为什么感觉每年手机都在升级CPU,但始终都会卡顿?
  8. 循环赛日程安排(构造、分治)
  9. WebStorm——最智能的Javascript IDE
  10. fedora 主题美化
  11. html页面改成wap页面,wap网页怎么制作 这五大常见问题你要了解一下了!
  12. fanuc机器人与示教器配对_FANUC机器人示教器维修
  13. 红米2刷android4.4,【图片】红米2三网通刷CyanogenMod CM11 Android 4.4.4_红米2吧_百度贴吧...
  14. 转载:domain adaption
  15. Java并发编程与技术内幕:ThreadFactory、ThreadLocal
  16. matlab ssd检测,基于SSD神经网络的违章停车车辆实时检测方法与流程
  17. linux 摄像头 音频,调用宇视摄像机SDK获取IPC的音视频码流
  18. 全网19套超热门表情包,小狗头、国王排名等我全部整理来了
  19. iphone 分享到twitter
  20. ubuntu18系统支持中文

热门文章

  1. 单选框定位操作处理和alert系统弹窗处理
  2. 外贸人的主流社交工具多开方法
  3. Ubuntu 12.04版本不能正确识别显示器的解决办法
  4. 新代系统怎样看服务器ip,新代系统DOSFTP联网应用
  5. 计算机系统 cpu课程,片上计算机系统课程设计CPU模型机设计.docx
  6. Proxmox ve 6.2 安装
  7. 春校赛--求索溪边树下的小瓜
  8. 飞腾ASP CMS v3.1发布
  9. python电子版笔记_python学习笔记-电子书
  10. python经典排序_经典排序 python实现