07-02-04flask在easyorder的作用
07-02-04flask在easyorder的作用
目录
引言:
轻量级的微服务框架flask
flask是个轻量级的微服务框架,和轻量级的自动化测试框架组合起来,就是绝配。
你说呢?
这里有英文的在线文档: https://palletsprojects.com/p/flask/
这里有中文的在线文档: https://dormousehole.readthedocs.io/en/latest/
正文:
1 flask 与接口自动化的集成
1 flask 的 默认启动模板
from flask import Flask,jsonify,render_template
# template_folder 默认的模板文件路径
app = Flask(__name__,template_folder="templates")
#template_folder="templates" 是默认设置,我们也可以把后面的路径修改。
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
2 把测试用例执行入口加入到flask中
from flask import Flask,jsonify,render_template
from testsuites import suitereprocess
from testdatas import conf_common
# template_folder 默认的模板文件路径
app = Flask(__name__,template_folder="templates")
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route("/apitest",methods=["GET"])
def apitest():
## 把测试套件中的用例执行
do_test =suitereprocess.GenerateReport(suitereprocess.MoudleTestSuite().suiteAPI())
do_test.createreport()
print(jsonify(conf_common.output_body))
return jsonify(conf_common.output_body)
if __name__ == '__main__':
app.run()
3 把测试报告放到template目录下,之间在浏览器中打开
@app.route("/apitest",methods=["GET"])
def apitest():
## 把测试套件中的用例执行
do_test =suitereprocess.GenerateReport(suitereprocess.MoudleTestSuite().suiteAPI())
do_test.createreport()
print(jsonify(conf_common.output_body))
##直接在web浏览器中跳转报告html页面
return render_template("robert_report.html")
这里还需要提前把报告的生成路径放到flask的templates目录下。
now_time = time.strftime("%Y-%m-%d%H_%M_%S")
# 测试报告存放的位置
# 因为windows和linux的路径符号不一样,所以用了reportfilepath和reporthtmlpath
reportfilepath='templates\\robert_report' + now_time + '.html'
reporthtmlpath='/robert_report' + now_time + '.html'
reportobject = {
"title" :"测试学科--测试开发 ",
"verbosity":3, # 日志打印详细级别 数值越高越详细,默认是1 [1,2,3]
"description" : '这是unittest综合实战',
"reportfilepath": reportfilepath
}
总结:
1 实际应用中,flask有着许多的特性。可用根据情况结合自动化测试。
项目布局
应用设置
定义和操作数据库
蓝图和视图
模板
静态文件
博客蓝图
项目可安装化
测试覆盖
部署产品
2 显著的改进就是,以前你运行自动化测试需要到部署的机器上启动。
用了flask以后,就是web服务了,可以使用http的get/post方法来触发。
3 查看报告的方式改进了(如下图所示)
用了flask以后,查看报告的方式,也可以使用http的get/post方法来触发。
思考与延伸