第四节:flask在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方法来触发。

思考与延伸

1 mockserver是什么?在flask中如何快速构建一个mockserver

2 flask的蓝图是什么?它需要 如何运用。

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术