【测试平台开发】——04Flask后端api开发实战(一)

一、测试平台开发模式

要开发一套平台有两种开发模式,一个【大而全】,一个【小而简】。

说道【大而全】想到目前大型项目都使用的语言【JAVA】,【小而简】想到的是【Python】语言。

重武器(大而全):JAVA-Spring(中间件)、Python-Django(ORM、Admin、中间件)

轻武器(小而简):Python-Flask、JAVA-SparkJava

想必大家都听过田忌赛马吧,同等级的马匹也会有好与坏,既然都是同等级的话,相应的选择最有优势的为最好。

所以现在使用Python开发测试平台,就选择Flask框架了。

 

二、设计测试平台

  1. 存储测试用例
  2. 测试用例需求关联
  3. 查找测试用例
  4. 更改测试用例
  5. 执行测试用例
  6. 测试用例分类(任务和测试套)

三、测试平台基本流程

四、测试平台后端组成

 

五、Flask基本功能的使用

第一篇文章》其实已经讲解了Flask基本用法,这一篇讲还有一些扩展的地方。

1、基本应用

复制代码
from flask import Flask, request

# 初始化Flask实例
# Flask是一个wsgi应用。(WSGI是一套协议,使Web应用和服务器交互跟通顺)
# __name__给Flask一个名称
app = Flask(__name__)

# 定义了路由,当访问路由中定义的url时,就会执行下面的函数
# 代表根,当浏览器什么都不输入的时候,就访问根
@app.route("/")
def hello_world():
    # Flask函数的返回值,默认是html类型
    # 如果返回是字典,就是json类型
    return "<p>Hello, World!</p>"


if __name__ == '__main__':
    # 运行服务,Flask默认会监听127.0.0.1:5000,只要发送get或者其他请求,可以触发路由
    # debug=True,启动调试模式,当代码发生变化,Flask服务会自动刷新
    app.run(debug=True)
复制代码

这回不使用命令行运行路由,里面添加了详细的注释。

浏览器输入:http://127.0.0.1:5000/

2、监听类型GET、POST

复制代码
from flask import Flask, request

app = Flask(__name__)


# methods可以指定监听类型,post get put......
@app.route("/hello", methods = ['get'])
def hello():
    return "<p>thank you!</p>"


if __name__ == '__main__':
    app.run(debug=True)
复制代码

浏览器输入:http://127.0.0.1:5000/hello

Python Console输入:

>>> import requests

>>> r = requests.get("http://127.0.0.1:5000/hello")
>>> r.text
# 结果
'<p>thank you!</p>'

路由默认支持get请求或者指定get类型,如果后面改为:@app.route("/hello", methods = ['post'])post类型的话

再浏览器输入:http://127.0.0.1:5000/hello

请求的URL不允许使用该方法。

会报错,所以需要改一下类型

3、传递参数

1)request.args

复制代码
from flask import Flask, request

app = Flask(__name__)

@app.route("/param")
def get_param():
    # 可以利用request.args获取参数
    # Thread-Local:使request.ars可以获取多个参数
    return request.args

if __name__ == '__main__':
    app.run(debug=True)
复制代码

在浏览器中输入:http://127.0.0.1:5000/param?a=1&c=10

 在Python Console中输入:

>>> import requests

>>> r = requests.get("http://127.0.0.1:5000/param?a=1&c=10")
>>> r.text
# 结果
'{\n  "a": "1", \n  "c": "10"\n}\n'

2)request.json

复制代码
from flask import Flask, request

app = Flask(__name__)

@app.route("/param", methods = ['post'])
def get_param():
    # 可以利用request.json获取传过来的请求体
    return request.json

if __name__ == '__main__':
    app.run(debug=True)
复制代码

在Python Console中输入:

>>> r = requests.post("http://127.0.0.1:5000/param", json={'abc': 12345})
>>> r.text
# 结果
'{\n  "abc": 12345\n}\n'
>>> r.json()
# 结果
{'abc': 12345}

 

3)加变量字段

复制代码
from flask import Flask, request

app = Flask(__name__)

# Flask中<>代表变量,会把真实的URl的<>中的内容传递给对应变量
@app.route("/param/<abc>")
def get_var(abc):
    return abc


if __name__ == '__main__':
    app.run(debug=True)
复制代码

浏览器输入地址:http://127.0.0.1:5000/param/ddddd

 

六、Flask小手枪:

七、自动化平台系列文章汇总

【测试平台开发】——开篇章节

 

posted @   Owen_ET  阅读(760)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 模様 (TV size ver.) Ivy to Fraudulent Game
  3. 3 河口恭吾
  4. 4 愛してる 高鈴
  5. 5 一生所爱 卢冠廷,莫文蔚
  6. 6 世间美好与你环环相扣 柏松
  7. 7 理想三旬 陈鸿宇
  8. 8 不浪漫罪名 王杰
  9. 9 樱花树下 张敬轩
  10. 10 因为你在 达闻西乐队,福禄寿FloruitShow
  11. 11 悬溺 葛东琪
悬溺 - 葛东琪
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 葛东琪

作曲 : 葛东琪

编曲 : 葛东琪

我主张制止不了就放任

这欲望与绝望之争

余温她却喜欢过门

临走呢

还随手关了灯

So funny

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

Ya i ya i ya i ya i ya i ya i ya

It's so funny ya i ya i

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

It's so funny ya i ya i ya i ya i ya

Ya i ya i ya i ya i

我主张克制不了就放任

悬上该有的天真

起伏在于喜怒哀乐

松了绳

大不了无人问

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

Ya i ya i ya i ya i ya i ya i ya

It's so funny ya i ya i

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya

It's so funny ya i ya i ya i ya i ya

Ya i ya i ya i ya

有什么话要说

录音师 : 葛东琪

混音师 : 葛东琪

制作人 : 葛东琪

点击右上角即可分享
微信分享提示