根据我们上一节最后的投票。 引入unittest框架 碾压了第一种。其实我个人也偏向这个。因为我尝试过很多,但是唯独没有引入unittest在接口测试平台中。所以借此机会,也想挑战一下,涨点经验。

请注意:目前博主是完全完全没这个设计和实现过的状态,和正在看此文章的你一样,让我们感受最原始的设计思路。

首先我们打开views.py,找到我们写了个开头的这个实际请求的函数:

既然要引入unittest,那我们这块可能要想到,这么一个测试类,是否应该放在其他文件呢? 我觉得可以试一试一会。

这里我们从数据库中先拿到所有步骤,然后这些步骤我们利用循环,让其自动生成这个测试类的 子函数。然后运行这个unittest测试类即可。

这个过程如果不经过讲解,很难看明白来龙去脉。

我们先新建一个其他文件,作为unittest的主要运行文件。而当前的这个views.py 就会履行它真正的作为视图逻辑的交互责任,就是整理过滤前端请求数据,传递给业务层。

我们在贴着views.py的位置 创建一个新的文件叫: run_case.py:

好了我们继续,用过unittest的人都知道我下面的写法吧:

非常简单的一个unittest demo。

我们现在就是要想办法,调用这个文件,启动这个unittest

我们现在来想个问题,就是我要怎么调用,并且,还能带着参数-一群步骤

那么现在看这个写法,应该没法带参数,甚至没法调用。因为我们要引入httptestrunner,所以我们正好可以利用起来,具体操作如下:

首先下载并导入这个HTMLTestRunner 文件。

然后代码如下:

这时候我们运行这个run的话,就会执行这个用例,并且生成xxx.html测试报告。

不过我们不在这里运行,而是选择去views.py中调用这个run()函数来运行。

所以这个views.py写法如下:

然后我们重启服务 刷新页面,点击运行按钮 看看效果:

可以看到 成功运行了,并且生成了测试报告:

只是这个报告目前 位置我们还没有设计好,所以默认生成在这了。

右键这个html,选择open in broswer,选择你的浏览器 看看效果:

大家请忽略报告中的一些文案~ 后续我会放上纯净版的这个HTMLTestRunner.py文件。

然后就是我们本节的结尾,就是给这个报告放在指定位置:

在templates包下新建一个名为Reports的包,用来存放我们的测试报告:

然后别忘了删除我们刚刚调试生成的那个报告,记得及时清理这些垃圾。

然后在我们的run函数中,改写这个filename:

然后我们重启服务 再试一次:

发现这次报告生成在了 应该出现的位置。

最后我们顺便再做一下这个查看报告的功能吧,早做出来也早方便我们调试。

打开P_cases.html,找到这个查看报告按钮,给它外面套一层a标签。超链接按图中所写:

然后我们去写好对应的urls.py:

最后去写好对应的views.py中的函数:

我们这时候要思考一个问题,我们怎么来让这些生成的报告文件 能与 用例关联起来而不至于错乱呢?

最简单的办法,我们的html文件就干脆用大用例id来命名即可。所以我们代码如下:

如上图,我直接返回了这个html。

现在我们需要的就是让我们unittest自动生成的这些报告都以大用例的id来命名吧,这也就说了回来,我们一开始要对unittest的run函数传递数据,除了各种小步骤之外,还要传递大数据的id name等。以便生成清晰的报告。

所以这么改 Run_Case函数:

然后去unittest的文件的run函数接收好这俩个参数:

然后再想办法 拼接到生成的报告文件的名称中:

好,我们重启服务,刷新页面再测试:

测试结果显示,这个大用例id为1的 报告生成成功了!

然后我们再点击 页面上的查看报告按钮,看看能否展示:

发现也可以正常展示了!

好了本节内容到此为止。

附上这个文件:

链接: https://pan.baidu.com/s/1culicHiLfXf29O5sAndrMg  密码: 地址有误,请在下节中获取正确的

大家不要忘记分享,点赞,在看 这些啊~

unittest 多个测试文件只开一次浏览器_接口测试平台代码实现75: 多接口用例15相关推荐

  1. 接口测试平台代码实现48: 自动异常测试-1

    本功能属于番外,不是必须的.长度大概3章节.难度不高,也算给大家休息一下. 这个功能是什么意思呢?简单点说,就是一个接口保存好之后,你保存的请求数据都是正常的.但是错误的用例也就是无效等价类中,具体参 ...

  2. 接口测试平台代码实现139:不同项目大用例登陆态干扰bug测试

    虽然上节课我们准备好了测试数据,但是本节我们要想想如何来测,从哪看结果等问题. 根据bug描述,我们每次测试完,都要重启服务,防止干扰. 用例过程: 运行项目B的用例,看看登陆态字段uB是否存在. 重 ...

  3. unittest中的测试固件

    运行下面的两段代码,看看有什么不同? 第一段: import unittest from selenium import webdriverclass F2(unittest.TestCase):@c ...

  4. 系统学习Python——单元测试unittest:批量执行测试文件

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  5. 2022渗透测试-文件上传漏洞的详细讲解

    目录 1.什么是文件上传漏洞 2.生成图片木马 3.靶场 1.第一关 2.前端检测(第二关) 3.服务器端检测--MIME类型(第二关) 4.服务器端检测--文件类型(第十四关) 5.服务器文件内容验 ...

  6. 组合使用Laravel和vfsStream测试文件上传

    核心要点 \ 在应用开发中,测试是很重要的,在诸多的开发工具中,测试驱动开发是很伟大的一项: \ 测试文件上传并不像人们想象的那么简单: \ 目前,有很多很棒,但不为大家所熟知的测试工具: \ Lar ...

  7. python读取excel部分值存入另一个excel-python3读取excel文件只提取某些行某些列的值方法...

    今天有一位同学给了我一个excel文件,要求读取某些行,某些列,然后我试着做了一个demo,这里分享出来,希望能帮到大家: 首先安装xlrd: pip3 install xlrd 然后上代码: imp ...

  8. 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。

    关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决. 我曾经也碰到过优盘没怎么用过,去了一趟打印店,之后突然发现插到电脑上,电脑检测到 ...

  9. 渗透测试-文件上传/下载/包含

    渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...

最新文章

  1. Python基础(9)水仙花数
  2. Redis数据类型:字符串
  3. 电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】
  4. java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断
  5. #SORA#celery研究中的一个小问题
  6. office2010每次打开总是出现配置进度
  7. 红巨星粒子特效合集插件:Trapcode Suite 18 Mac版(支持m1)
  8. java 注解的实例化
  9. 用python手把手教你玩跳一跳小游戏,直接打出高分
  10. AD7705模数转换芯片工作原理
  11. 同一个视频,360p的文件大小却大于720p?
  12. 2017Final 圆周率山
  13. (34)[NIPS15] Teaching Machines to Read and Comprehend
  14. java中图片排版_Java实现第八届蓝桥杯图形排版
  15. 艾美捷人重组MEGACD40L蛋白(可溶性)实例展示
  16. canel-1.1.5 canal.deployer安装
  17. Extjs处理客户复制三位一撇到numberfield里面
  18. linux上使用openocd的问题
  19. 南方cass怎么添加指北针_添加图例、比例尺、指北针
  20. [pytorch学习笔记] 3.Datasets Dataloaders

热门文章

  1. myeclipse同时部署两个项目-permgen space
  2. (总结)Linux的/etc/services文件简析
  3. 蓝牙BLE ATT剖析(一)
  4. gbdt和xgboost区别
  5. C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 类型
  6. Html 教程(2)语法和属性
  7. java面试题(java基础)
  8. BUU[SCTF2019]Strange apk
  9. wasm逆向——(极客大挑战2021wasm
  10. 07-Armv8-A virtualization