Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2176673
  • 博文数量: 104
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1829
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。测试开发入行十余年,辉煌过,迷茫过,持续探寻人生的激情和前进的步伐!好好生活,认真工作!

文章分类
文章存档

2024年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: Python/Ruby

2015-01-19 20:10:33

需求:最近组内写了很多自动化测试工具,并且这些工具都是定时执行(检测线上版本)的,希望有测试失败用例时能及时通知给相关人员,需要编写一个短信服务公共模块;由于公司提供有短信接口,只是封装下,再增加点其他的功能逻辑,比如哪些模块的错误发给某些特定的人,如果第一次发送失败可以重复发送等等功能;
如何把此公共模块提供给测试工具开发人员,当时有两种情况:1、作为包引入,需要开发两个模块,因为测试工具有java和python两种语言;2、提供一个接口服务,get或者post数据,这样只用提供一个接口即可;
一直没有尝试过提供接口服务,在询问了很多人后,决定用python自带的轻便web工具:flask;

流程如下:
1、首先编写发短信模块,此发短信模块很简单(前提是利用公司提供的公共的接口)再加上其他控制,最终的目的就是此模块能发短信;
2、然后编写web服务模块web_app.py:

点击(此处)折叠或打开

  1. from flask import Flask,request
  2. from alam import * //导入短信发送模块alam

  3. app = Flask(__name__)
  4. @app.route("/alam/",methods = ['POST','GET']) //支持两种方式提交数据,post和get
  5. def test():
  6.     '''post和get发送获取数据方式不同'''
  7.     if request.method == 'POST':
  8.         msg = request.form['msg']
  9.         function = request.form['function']
  10.         if function == 'film':
  11.             main(msg,function) //此main函数为alam中的发送短信函数;
  12.             return "post ok"
  13.     else:
  14.         request.method == 'GET'
  15.         msg = request.args.get('msg')
  16.         function = request.args.get('function')
  17.         if function =='film':
  18.             main(msg,function) //此main函数为alam中的发送短信函数;
  19.             return "get ok"

  20. if __name__ == '__main__':
  21.     app.run(host = "127.0.0.1",port = 5005,debug = True)
运行web_app.py,此时服务就起来了;
如果你在浏览器中输入url:此时网页会显示“get ok”;
下面是get和post提交数据的区别:

点击(此处)折叠或打开

  1. import requests
  2. url1 = ""
  3. url2 = "?msg=test_post&function=film"
  4. datas = {"msg":"test_post","function":"film"}
  5. r = requests.post(url1,data=datas) //post方法
  6. print r.text
  1. print requests.get(url2) //get方法

OK,至此此功能已经完成,刚接触有些东西不是很了解,先写出来让他先能工作,以后慢慢了解吧;

阅读(3556) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~