1、背景

北知项目的证据交换系统,有一个证据上传查看功能用户使用较多,其中上传功能的后台处理逻辑复杂,内部进行了切图处理,以此来满足对于上传word类,PDF类的文件进行查看的需求。

2、分析

根据需求背景,可以得出每次都进行大批量的上传,再对切图后的文件进行查看,是比较反复性的操作,所以可以引进自动化。根据最源头的处理方式,得出可以以切图接口作为数据源入口,得到的返回数据用于预览接口的使用。

3、自动化思路

  • 切图接口为数据源,产生切图文件id,将接口返回文件id进行分离取出,写入到本地文件;
  • 预览接口使用CSV配件调取切图接口产生的切图id文件,进行批量循环查看。实现自动化测试。

4、初步构建:

先配置切图接口线程组,使用json提取器将文件id取出,供预览接口线程组使用。

5、优化脚本,达到实用:

  • 现实:证据的页数不只是一页,有的证据甚至可以达到一百页,一千页,所以切图完成后,对于这份证据,会产生一百个或者一千个id值。而预览功能不是只预览一页,而是对这成百上千个文件都能预览才算成功。
  • 解决思路:先将这成百上千的id值从切图接口的返回结果中取出来(难点1),取出来后写入到文件中(难点2),写入文件中后,需要换行输出(难点3),之后使用该参数集合供预览接口循环读取使用。
  • 解决办法:编写jar包,主要功能为:(1)分离切图返回的id值;(2)编写字符串写入本地文件的方法;(3)写入文件时换行写入,方便后面预览接口的读取。以此解决了难点1、难点2和难点3。同时编写Bellshell脚本来调用jar包中的实现方法,解决现实问题。
  • 操作步骤:
    • 编写jave程序,导出jar包。已写好的jar包下载:jsontofile.jar;
    • jar包使用:将编写好的jar包放入jmeter的lib\ext下。并在脚本的测试计划中进行引入:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LjZc9xFD-1572331408893)(/uploads/fcb5a077d87c97fcf5b0673669293527/image.png)]
    • 在切图接口下编写BellShell脚本,使用jsontofile.jar中的方法:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NLIDIM0N-1572331408893)(/uploads/a07d9df7cf4c6508f28f7389e67e175d/image.png)]
    • 预览接口增加Csv Data Set Config配件,读取切图接口产生的图片id:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G0CntFhz-1572331408894)(/uploads/adcf5af5c4f73251698fa97e3d69f2a2/image.png)]
    • 注意,在测试计划中勾选:独立运行每个线程组的选项,保证切完图后再进行查看预览的执行顺序。

以此实现证据切图后进行预览多页文件的自动化测试。

6、待优化点

  • 因为切图返回的id数据是一个集合,所以没有很好的方式去分离id后存入变量读取,所以暂时使用的是java编写的一个方法去进行分离的,具有一定的局限性,只能用于切图这一个接口的返回数据分离。多次尝试用正则表达式或者json提取器的配件,没有解决问题,所以该处需要再次优化。
  • 预览接口读取头信息时,如果token使用的全局变量方式读取,会随机的出现重定向最大值的报错问题。暂时改成token定值使用,解决了重定向的问题。但是后面会针对该问题进行排查优化,了解重定向的原因,尽量使用全局变量的方式去传输token,提高脚本的维护性。

7、体会

经过本次使用jmter编写自动脚本的实践,发现了学习一门计算机语言的重要性。在实践过程中难题在于多页的数据传输处理。中间出现了:值取不出;值取出后写不进去;写进去后不能换行。每个中间出现的问题都在消耗我们的能力和经验。所以如果没有一个很好的编程以及动手能力,问题是很难解决的。终归是纸上得来终觉浅,绝知此事要躬行。

使用jmeter自动化证据切图后预览操作相关推荐

  1. 蓝湖切图后如何做成html,如何使用蓝湖 sketch for Mac设置切图?

    https://mac.orsoon.com/Mac/172336.html 蓝湖 sketch for Mac是一款适用于sketch的高效切图插件.本次为您带来了如何使用蓝湖 sketch for ...

  2. 蓝湖切图后如何做成html,蓝湖支持「切图压缩」了!

    Hey,大佬们,蓝湖正式上线「切图压缩」功能,号称设计师和工程师必备利器!埋头工作的你,还不快来试试! 什么是「切图压缩」?「切图压缩」前后有什么区别? 蓝湖通过智能无损压缩技术,选择性地减少 PNG ...

  3. ps切图后 JAVA开发_做一个会PS切图的前端开发

    系列链接 切图方法分类 PhotoShop从CS版本演变到现在的CC版本,切图功能发生了比较大的变化,我们可以把PhotoShop CS版本时的切图功能称为传统切图,而从PhotoShop CC版本开 ...

  4. ps怎么切图后放html下,怎么使用PS切图?PS切图后怎么保存到本地?

    怎么使用PS切图?使用PS切图的目的其实就是将大的设计图分割成多个小图片,通过网页代码定位后台相册的照片来显示前端网页的效果,当然,在处理某X宝的图片的时候也是可以使用该方法的,具体见下文怎么使用PS ...

  5. 用友T6软件设置打印模板后预览没有变化-用友T6

    设置打印模板后预览没有变化 原因分析:操作员在进行打印预览时如果在预览界面选择"保存当前设置",此时会在C盘下生成一个XML格式的文件,无论如何修改单据打印模板,预览调取的都是保存 ...

  6. java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过url预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  7. java 读取浏览器_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过URL预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  8. java用浏览器下载文件_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过url预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  9. java浏览器预览文件_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过URL预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  10. ps切图后 JAVA开发_2018年设计师都在用的PS切图插件--摹客

    终于找到你,我梦寐以求的PS切图插件.曾几何时,设计师在完成设计稿之后高效的输出标注切图一直是设计师的噩梦.为什么这么说呢?开发要的那么多尺寸,我到底该怎么切图?iPhone的版本已经不少了,更别提安 ...

最新文章

  1. C++:读写二进制文件到double数组,根据二进制数据量进行读取
  2. Microsoft uaa bus driver for high definition audio
  3. int函数在Oracle,vb中int是什么意思 ?
  4. generating phar.php,Generating
  5. metasploit基本使用方法
  6. 从svn导入多个项目_GIT和SVN相比有哪些优势?如何在团队内部推行GIT?
  7. python字符串操作_Python 字符串操作 - 树懒学堂
  8. Linux操作系统原理与应用03:进程
  9. Mac怎么终端配置mysql_mysql mac怎么在终端安装
  10. java txt转换excel_Java实现将txt文件转成xls文件的方法
  11. 提取swf素材_swf素材提取工具
  12. android动态表格数据类型,华为运动表GT表盘主题制作教程
  13. 微信小程序之上传图片到云端存储并返回图片地址
  14. 生信可视化(part2)--箱线图
  15. 简易画图工具(Python)
  16. Java入门教程(视频)
  17. 油气开采上百年,技术依旧原始,硬伤在这儿
  18. box-sizing:border-box 解释
  19. springcloud zuul的实用配置 如禁止暴露API 简洁URL
  20. JavaWeb之HTML入门及常用标签

热门文章

  1. python读取图片各点灰度值_用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)...
  2. 企业运维实战--MFS分布式文件系统
  3. 7-7 浪漫的表白 (10 分) 计算生日差据天数
  4. 5 款开源的 Linux 策略模拟游戏 | Linux 中国
  5. 虹膜手机元年,支付是杀手级场景
  6. 致远OA A8 漏洞综合工具
  7. mysql 按条件join_MySQL Join竟然可以这么玩?根据条件进行复制
  8. 正弦波振荡的常见电路
  9. 项目Beta冲刺(5/7)(追光的人)(2019.5.27)
  10. QT教程—1.1Qt入门