栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

〖Python接口自动化测试实战篇⑭〗- 实战 - unittest框架生成测试报告、接口自动化总结与职业延伸

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

〖Python接口自动化测试实战篇⑭〗- 实战 - unittest框架生成测试报告、接口自动化总结与职业延伸

点击下方图片有惊喜,精美礼品等你来拿哦


前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 哈士奇 ,一位致力于 TFS 赋能的博主 ✌
CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 
 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
 如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


专栏系列(点击解锁)学习路线指引知识定位
Python全栈白皮书 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 更新中
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录
    •  测试报告
      •  利用 TextTestRunner().run() 生成文本测试Case报告
      •  利用 HTMLTestReportCn.py 生成可视化测试报告
    •  接口自动化测试总结与职业延伸

经过前面的了解,我们现在唯一还需要的就是还缺少一个可视化的测试报告,所以这个小节主要是来学习一下测试报告的内容,知识点不多,很简单的。在介绍完测试报告时候在顺便总结一下这段时间接口测试自动化的内容,展望一下作为自动化测试、测试研发的未来职业延伸…

 测试报告

其实 unittest.TextTestRunner().run() 方法本身也会返回一个文本对象,但是内容过于简陋,只适合我们查看 测试Case 的运行结果并不适合作为一个正规的测试报告交予出去;还有一种方法就是利用开源的报告组件 HTMLTestReportCN ,利用该组件,就可以输出一份美观的可视化报告了。

接下来就学习一下如何实现这两种报告的方法吧。

 利用 TextTestRunner().run() 生成文本测试Case报告

代码示例如下:

# coding:utf-8


import unittest

from test_account import TestAccount
from test_account_copy import TestAccount2


suite = unittest.TestSuite()        # 定义一个套件
# suite.addTest(TestAccount("test_login_normal"))  # 将 "test_account" 模块中 "TestAccount" 类 的 "test_login_normal"用例添加到 测试套件
# suite.addTest(TestAccount2("test_login_abnormal2"))  # 将 "test_account_copy" 模块中 "TestAccount2" 类 的 "test_login_abnormal2"用例添加到 测试套件
suite.addTests([TestAccount("test_login_normal"), TestAccount2("test_login_abnormal2")])

# 输出到文本文件中的测试结果
with open("result.txt", "w") as f:
    unittest.TextTestRunner(stream=f, verbosity=2).run(suite)

运行结果如下:



输出 result.txt 文件内容如下:



PS:这样的报告交付出去会不会被领导锤爆?

 利用 HTMLTestReportCn.py 生成可视化测试报告

HTMLTestReportCn.py 是一个第三方模块,它会以 HTML 格式的方式存放测试结果,并以报告的形式保存。

HTMLTestReportCn.py 无法通过 pip 进行安装,下载地址:https://tungwaiyip.info/HTMLTestReportCn.html 。该模块是基于 Python2 开发的,所以在 Python 3 上不兼容,所以需要对该模块进行修改。我已经将修改好的使用与 Python 3 的 HTMLTestReportCn.py 上传至CSDN资源一栏,点击下载即可,免费的。

代码示例如下:

# coding:utf-8


import unittest

from test_account import TestAccount
from test_account_copy import TestAccount2
from HTMLTestReportCN import HTMLTestRunner


suite = unittest.TestSuite()        # 定义一个套件
suite.addTests([TestAccount("test_login_normal"), TestAccount2("test_login_abnormal2")])

# 输出测试报告到 "result.html" 文件中,因为 "HTMLTestRunner" 提供的就是二进制的写入的模式
f = open("result.html", "wb")
HTMLTestRunner(stream=f, title="登录接口测试报告", description="Case-test_login_normal 与 Case-test_login_abnormal2")
f.close()

运行结果如下:



HTML 格式测试报告内容如下:



到了这里,针对于 unittest 、接口测试 到了这里基本上已经告一段落了,接下来就总结一下接口测试这一段的内容与未来的自动化测试的职业延伸。

 接口自动化测试总结与职业延伸

接口自动化测试阶段总结



  • 接口测试的准备与基础:
    • 接口测试基础概念与接口测试的准备
    • 协议概念(http协议的接口测试占据实际工作中的90%)
    • 了解 get、post 的基础请求模式,传参模式

  • 接口测试的学习
    • 抓包工具的学习与使用(很重要,没有接口文档情况下,可以帮助我们快速获得接口协议与API格式)

  • 如何通过 Python 编写接口测试代码
    • 经典接口测试用例编写(从注册到登录,再到查看用户信息)
    • 将接口测试Case利用 unittest 框架进行用例组织与维护
    • 实现 HTML 格式的更美观的测试报告


unittest 框架升级思路


  • 将一些相对来说公共的测试用例进行整合。
  • 对一些共用的参数、代码进行提取和分离。
    • 提取数据做成数据驱动
    • 将代码做成分层模式

前景与职业延伸

现在我们更倾向于的是在本地编写自己的测试脚本,然后最终生成一个 HTML 的测试报告;如果想要做的更多,比如说领导想要查看近一个月接口测试的同级与迭代次数,就可以安装一个服务端将所有的测试结果的数据写到服务器上,这样就可以更好的展示最近一个月的接口测试量与迭代的增加。

因为我们做的毕竟还是接口测试,接口测试就离不开一个概念,那就是接口是要依赖于上下游的。比如下游系统都是一堆微服务,可能我们测试的Case是一个交易系统,下游是一个支付系统。交易系统购买任何的商品都需要去进行支付。当支付的接口没有写好要怎么办?正常情况下,都是需要 等待支付的接口开发好并正式的对接之后才可以进行调用。

但是我们做接口测试的时候,就可以通过 Mock 配置的方式来拿到相应的结果。在不影响我们自己测试的前提下,测试交易模块的逻辑,这就是 Mock 的概念。

再往深度的发展,可以考虑将 Mock做成一个 Mock 平台,通过平台页面的配置化来进行我们的测试(即将接口测试做成一个接口测试平台)。比如前台用Vue、Flask,后台使用 Django 来实现都没有问题,就像我们之前写的登录接口的这些内容完全可以通过页面维护的形式存入到数据库中并且执行。

再再往深层发展的话,是否可以利用 AI 的技术通过接口测试文档自动实现接口的识别,自动生成接口自动化测试的 Case 等等(目前我是没见过,我也没这技术…),比如通过深度学习的方式,通过人工智能的方式等等; 目前腾讯、阿里这些大厂的技术部门都在研究这一方面的内容。也是未来这群有开发经验的、能够写代码的同学去完成、完善的内容…

OKK,接口自动化测试,到了这里基本可以收工了。下一章节将开始 WEB 端 UI 自动化测试章节的学习了。

拜了个拜...



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号