接口测试平台-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,就不能 ...
最新文章
- oracle查看字典结构体,Oracle数据字典的实操
- ubuntu14.04 下安装jdk1.8
- linux设置用户密码、查看linux用户信息、root用户管理普通用户(passwd命令使用)
- Python日志记录:在配置文件中指定日志格式化程序的转换器属性
- 成为Java流大师–第5部分:将联接的数据库表转换为流
- CentOS 7 / RHEL 7 systemd 指令
- 前端学习(1668):前端系列实战课程之限制范围拖拽思路
- linux安全 4a标准_Linux的未来,提高安全性的开放标准等等
- 《spring-boot学习》-01-初体验
- Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)
- 云计算机室怎么样映射d 盘,云服务器磁盘如何映射到本地磁盘
- PC端 二维码/条形码扫描器1.1-支持截图+摄像头+本地图片+扫描枪识别
- android逆向 网易,Android逆向——网易云音乐排行榜api(上)
- geotoolkit 测井曲线显示时间、深度双刻度
- pick out.php,pick_out.php
- flowable 中文文档
- 树莓派实验室python人脸识别_使用树莓派进行简易人脸识别
- 2014一年开发技术资料收藏整理(一)
- C语言版桌球游戏台球游戏源代码,含完整程序设计文档及答辩PPT,含可执行文件
- 读《平凡的世界》有感
热门文章
- node.js安装后输入“node -v”提示‘node‘ 不是内部或外部命令,也不是可运行的程序的解决方法
- 分区格式化大于2 TiB磁盘
- 1、snaker笔记
- 【图像加密】正交拉丁方+二维Arnold置乱图像加密【含GUI Matlab源码 813期】
- 【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】
- 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers
- Spring @Order注解详解
- 易语言编程-远程封包拦截与发送技术
- 打印机服务Print Spooler启动后又自动关闭的解决办法
- 现实迷途 第三十章 若即若离