自动化测试平台的探索

1、概述  

  距离上一篇帖子过去了将近一年的时间,主要缘由是由于这一年刚加入新公司,入职了一个新的行业,因此须要花时间学习新的业务知识,最近才有时间去探索上一篇帖子说的自动化平台的开发,此次只是先作了一下可行性研究,详细以下html

2、前端设计

只作了基本的几个控件, 在文本框内输入要生成的文件数量,点击生成后在相应的目录下生成对应的文件前端

    

对应的代码也很简单,就一个from表单,以下:python

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>测试文件生成页</title>
 6 </head>
 7 <body>
 8 <form action="/result" method="post">
 9     TXT: <input type="text" name="txt" style="width:80px">
10     <br>
11     JPG: <input type="text" name="jpg" style="width:80px">
12     <br>
13     PDF: <input type="text" name="pdf" style="width:80px">
14     <br>
15     EXEC: <input type="text" name="exec" style="width:80px">
16     <br><br>
17     <input type="submit" value="生成" style="width:130px">
18 </form>
19 </body>
20 </html>

3、后台逻辑

以前打算用Django实现,但目前项目组用的都是tornado,因此此次使用tornado来实现web

tornado教程:http://demo.pythoner.com/itt2zh/index.html服务器

tornado官方文档:http://www.tornadoweb.org/en/stable/app

后台源码:tornado

逻辑很简单,获取前端txt文本框的值,若是值不为空,则生成对应数量的测试文件oop

 1 #!/usr/bin/env python
 2 # coding:utf-8
 3 import tornado.httpserver  4 import tornado.ioloop  5 import tornado.options  6 import tornado.web  7 import tornado.escape  8 import os  9 import time 10 
11 from tornado.options import define, options 12 
13 define("port", default=8004, help="run on the given port", type=int) 14 
15 PATH = "D:/test_data/"
16 
17 
18 def create_txt(path=PATH, file_num=1, file_size=8): 19     """
20  :param path: 测试文件的存放路径 21  :param file_num: 须要生成的数量 22  :param file_size: 每一个文件的大小,以KB为单位 23     """
24     if not os.path.exists(path): 25  os.mkdir(path) 26     for i in range(file_num): 27         file_name = "test_txt_"+str(i)+".txt"
28         data = "test_t"+str(time.localtime()) 29         with open(os.path.join(path, file_name), 'w') as f_obj: 30             for j in range(8*file_size): 31  f_obj.write(data) 32         print("create file: test_txt_(0-%d).txt in path %s success, file size: %sKB" % (file_num, path, file_size)) 33 
34 
35 class MainHandler(tornado.web.RequestHandler): 36     def get(self): 37         self.render("index.html") 38 
39 
40 class Resultandler(tornado.web.RequestHandler): 41     def post(self): 42         txt_num = self.get_argument("txt") 43         if str(txt_num) != "": 44             create_txt(file_num=int(txt_num)) 45 
46 
47 if __name__ == "__main__": 48     handlers = [ 49         (r"/", MainHandler), 50         (r"/result", Resultandler), 51  ] 52     template_path = os.path.dirname(__file__) + "/" + "template"
53  tornado.options.parse_command_line() 54     print("application is running") 55     app = tornado.web.Application(handlers, template_path) 56     http_server = tornado.httpserver.HTTPServer(app) 57  http_server.listen(options.port) 58     tornado.ioloop.IOLoop.instance().start()

4、结果

  若是作过web开发的朋友应该知道,这样生成的文件是存放在服务器端的,而我最初的设想是直接在客户端生成的,这样就与设计不符,方案缺乏可行性post

5、其余

  一、跟同事一块儿讨论 建议先在服务器上生成,而后在下载到用户的电脑,这样技术上可行,但实现就复杂了,并且若是须要的文件数量多且文件较大,传输的时间会很长学习

  二、虽然次方案不能准备测试文件,但生成多个文件的分享地址仍是能实现的,平台基本的结构就是这样了,还在学习当中,欢迎高手指点!

相关文章
相关标签/搜索