博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python写api接口测试之tonador
阅读量:7208 次
发布时间:2019-06-29

本文共 2906 字,大约阅读时间需要 9 分钟。

亚马逊的lambda跟api_dateway搭配编写接口测试,看了文档发现时间29秒必须出结果,否则超时,像我们爬虫数据比较多的,多爬点数据就容易超时,那应该怎么办呢。

于是我挑了一个轻量级的进行简单学习--tonador

这边我写一个接口用来提取介词短语进行接口测试。--正好最近要进行提取介词短语的测试,就以这个例子为主,编码。

首先安装tornado 

pip install tonador

接下来看代码的实例

 

# -*- coding:utf-8 -*-import sysimport jsonimport pymysqlsys.path.append('../')import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webimport nltk,sysimport jsonfrom extractor import phrases_extractorfrom tornado.options import define, optionsdefine("port", default=8000, help="run on the given port", type=int)#定义处理类型class IndexHandler(tornado.web.RequestHandler):    #添加一个处理get请求方式的方法    def get(self,input):        #向响应中,添加数据         #提取传入参数的转换        data_list = str(input).split("=_=")        #data_list=["i go to work by bus", "hello world", "go to school","by car","go to school byebye good morning","the apple in the box"]        returnItem = {}        returnItem["getPhrase"] = getScopeOfApplication(data_list)        returnItem["getPhraseWithoutPre"] = getProductCharacteristics(data_list)        self.write(json.dumps(returnItem))def getScopeOfApplication(data_list):    if len(data_list)==0:        return []    text = data_list[1]    for i in data_list[2:]:        text += ',' + i    grammar = r"""        NP:        {
?
*
+} {
+} PP: {
} """ label = 'PP' phrase_list = phrases_extractor.get_phrases(text, grammar, label) result_list = [] for phrase in phrase_list: if phrase not in result_list and len(phrase.split(' ')) > 2: result_list.append(phrase) if len(result_list) < 1: result_list = getProductCharacteristics(data_list) return result_listdef getProductCharacteristics(data_list): if len(data_list)==0: return [] cur_title = data_list[0] other_titles = data_list[1] for i in data_list[2:]: other_titles += ',' + i grammar = r""" NP: {
?
*
+} """ label = 'NP' phrase_list = phrases_extractor.get_phrases(cur_title, grammar, label) cur_list = list(set(phrase_list)) other_phrase_list = phrases_extractor.get_phrases(other_titles, grammar, label) result_list = [] for phrase in cur_list: if phrase in other_phrase_list: result_list.append(phrase) return result_list#定义接口的参数获取app = tornado.web.Application(handlers=[(r"/getwords/(.*?)$", IndexHandler)])#主函数执行if __name__ == "__main__": tornado.options.parse_command_line() http_server = tornado.httpserver.HTTPServer(app, max_buffer_size=504857600, max_body_size=504857600) # http_server.listen(options.port) http_server.bind(options.port) #开启五个线程 http_server.start(5) tornado.ioloop.IOLoop.instance().start()

 

然后python 程序.py 将服务开启,挂到服务器上进行执行

然后我们在浏览器中 输入      例如 

 

然后我们可以看到

 

 

很简单的写好一个接口,完美!

转载于:https://www.cnblogs.com/zhe-hello/p/10975306.html

你可能感兴趣的文章
HDOJ 2097
查看>>
计算机学科漫谈
查看>>
mac下配置openfire
查看>>
自定义控件实现(转)
查看>>
如何确认访客所在的国家
查看>>
跟着8张思维导图学习javascript
查看>>
InnoSQL/MySQL并行复制的实现与配置
查看>>
JDBC连接MySQL数据库及演示样例
查看>>
第38周五
查看>>
windows下Emacs的安装与配置
查看>>
WF4 常用类<第二篇>
查看>>
mongo文件空间
查看>>
NSArray中存的是实体时的排序
查看>>
搜索框中“请输入搜索keyword”
查看>>
CentOS6.5与XP双系统安装
查看>>
Python 更新set
查看>>
shell语法简单介绍
查看>>
Web服务器的工作原理
查看>>
使用WinSetupFromUSB来U盘安装windowsXP(不使用win PE系统)
查看>>
JAVA Calendar具体解释
查看>>