接口测试平台-106: 番外-正交工具 excel导出
首先在zhengjiao.html中加入 这个导出到excel的按钮。
然后去写对应的js,这个excel函数要做什么呢?其实就是提取页面生成的结果,然后给到后台,后台再写入到excel中,前端再配合去自动下载到使用者电脑即可。
提取方式有几种:
提取dom里的实际值。 把这些输入框都统计好。
直接提取运行后生成的那个二维数组。
直接复制运行功能的代码,进入后台后重新运行,并把结果变成excel而不是返回给前端,这个好处是简单,并且无需先运行。
按照已有的方法,选第三种。简单有效:所以代码完全复制即可,但是需要改动给到后端的url 和 接受返回值的动作函数。
代码如下:
{# 导出excel #} function excel() {var keys = document.getElementsByName('keys');var values = document.getElementsByName('values');var end_keys = [];var end_values = [];for (var i=0; i<keys.length; i++) {if(values[i].value !== '') {end_keys.push(keys[i].value);end_values.push(values[i].value);}}$.get('/zhengjiao_excel/', {"end_keys": end_keys.toString(),"end_values": end_values.toString()}, function (ret) {}) }
添加映射:
urls.py:
url(r'^zhengjiao_excel/$', views_tools.zhengjiao_excel), # 正交工具导出excel
views.py
# 正交工具导出 def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)print(res)return HttpResponse('')
这部分代码和运行的是基本一样的。这里当然没有写完,得到的这个res就是一个二维数组,也就需要写到excel中的。
打印一下看看:
python写入excel有什么方法:
利用xlrd等
利用win32com.clent 等
xlrd 大家可以直接pip下载,尽量下载全面:
然后在views_tools.py头部进行导入:
代码临时如下:
# 正交工具导出 def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)# 先创建lr_book = xlwt.Workbook(encoding='utf-8') # 创建excellr_sheet = lr_book.add_sheet('正交结果') # 创建sheetfor i in range(len(res)):case_index = '用例' + str(i+1) # 用例序号case = ','.join(res[i]) # 用例内容lr_sheet.write(i, 0, case_index) # 写入,i为行,0为第1列lr_sheet.write(i, 1, case) # 写入,i为行,1为第2列lr_book.save('tmp_zhengjiao.xls' + now()) # 保存return HttpResponse('')
完成后,运行一下看看:
项目根目录位置出现了这个xls表格,打开看看:
可以看到已经成功写入进来了。不过这里看着有点别扭,是因为没有把输入条件的名字 加进来。在前端js函数开始,把这个end_keys给传过来:
然后是python代码:
# 正交工具导出 def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)# 先创建lr_book = xlwt.Workbook(encoding='utf-8') # 创建excellr_sheet = lr_book.add_sheet('正交结果') # 创建sheetfor i in range(len(res)):case_index = '用例' + str(i+1) # 用例序号hb = list(zip(end_keys, res[i])) # 把key和value进行合并case = ','.join(':'.join(list(i)) for i in hb) # 用例内容,进行格式化,便于阅读lr_sheet.write(i, 0, case_index) # 写入,i为行,0为第1列lr_sheet.write(i, 1, case) # 写入,i为行,1为第2列lr_book.save('tmp_zhengjiao.xls') # 保存return HttpResponse('')
此时在运行看看结果:
这次就带上了 输入条件的名字了~
下载:
1.先把文件生成位置改到static中:
然后前端返回处理中只需要加一句:
这就是直接请求静态文件的方法~
然后重启服务,刷新页面测试:
可以看到成功下载了,然后去下载目录找到它并打开:
可以看到已经成功实现了功能。
接口测试平台-106: 番外-正交工具 excel导出相关推荐
- 接口测试平台-103: 番外-正交工具 简介+菜单
1. 正交工具简介: 正交是黑盒测试用例中的一种设计方法,适用于多个输入条件,并且各个条件直接没有逻辑强关联的情况,而每个输入条件又可能有多种状态. 比如,word文档的打印功能:有 纸张大小,有单双 ...
- 【番外篇】Excel:一行转多行
[番外篇]Excel:一行转多行 国庆开始卷,更新关于Excel的小技巧:一行转多行,也是在公司遇到关于一个Excel的案例,需求如下: 原数据: 需求:要将第二列数据转换为以下一一对应的多行 操作步 ...
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- 番外8:ADS导出DWG文件并交给工厂制板
番外8:ADS导出DWG文件并交给工厂制板 (功率放大器板子和散热器) 将ADS源文件导出PCB与散热器文件(功率放大器) 导出文件并预处理 打开制作好的版图文件,在原有基础上打好散热孔和固定孔,散热 ...
- 在Unity上编写一个小工具--Excel导出Json
这是个Excel导出Json的工具类,需要放进Editor文件夹里,之后就可以在菜单上点击导出了 这个工具运行需要一个插件----NPOI,这个是用来读取excel文件的,这个插件的dll文件可以去网 ...
- 从零开始打造云端AI管理调度平台(番外篇_2)视频播放器
本次更新主要更新一个HTML5视频播放器,用于在内容库当中的视频查看以及后续的智能处理结果查看. 视频播放一定要采用流式传输 为什么在文章刚开头我就要强调这一点. 因为很多新手小白在创建video标签 ...
- 【番外】利用Excel表格绘制数据透视图
我们还是利用统计回归那一讲里边用到的数据. 全选之后按照下图选择数据透视表,然后直接点击确定. 单项数据绘图 我们随便拿"配方"这一项来举例,把"配方"拖入右下 ...
- MongoDB 教程番外篇之管理工具: Rockmongo
RockMongo是PHP5写的一个MongoDB管理工具. 通过 Rockmongo 你可以管理 MongoDB服务,数据库,集合,文档,索引等等. 它提供了非常人性化的操作.类似 phpMyAdm ...
- 系统工程(SE)学习笔记(番外篇之一)——Capella使用体会兼谈SE工具
系统工程(SE)学习笔记(番外篇之一)--Capella使用体会兼谈SE工具 零.Capella简介 壹. Capella的优势 贰.Capella的缺点 叁. 生态环境 肆. 总结 说到SE,就不能 ...
最新文章
- mysql隐藏用户名_系统默认的MySQL用户名消失的解决方法(修正版)
- 1.7. FreeBSD 初始化设置
- python中2个字典比较
- matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)
- 操作系统(李治军) L11内核级线程
- OpenCV阶段总结扩充。
- mybatis plus 插入生成id_Mybatis-Plus 3.3.0 发布,让你专注业务快速敏捷开发
- .NET Core应用程序的2种部署方式
- Win11任务栏不重叠怎么设置,Win11任务栏不重叠设置方法
- 定位Oops的具体代码行[zt]
- 数据保护:从“随意架构”到简单可控
- android-x86 下载地址
- 盘点web前端三大主流框架
- SPSS--Friedman检验步骤
- 1143 Lowest Common Ancestor (30分) 附测试点分析
- 计算机关闭系统默认共享,win10如何关闭默认共享_win10关闭默认共享的图文步骤...
- app上架vivo应用商店流程
- 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载
- 关闭vscode中的源代码管理
- CRNN:文本序列识别