首页 > 其他分享 >flask框架使用unittest单元测试

flask框架使用unittest单元测试

时间:2023-05-24 11:13:42浏览次数:39  
标签:__ flask unittest 单元测试 self TAKEOUT json response resp

user_labels_api.py
 1 # -*- coding: utf-8 -*-
 2 # Author : Ethan
 3 # Time : 2023/5/16 12:50
 4 from flask import Flask,jsonify,render_template,request,json
 5 import requests
 6 # from flask_sqlalchemy import SQLAlchemy
 7 app = Flask(__name__)
 8 # bd = SQLAlchemy(app)
 9 app.debug = True  #调试模式,调试代码不需要重启
10 @app.route('/feign/user/labels/',methods = ['GET','POST'])
11 def getlabels():
12     url = 'http://*******.cf93fe1dde8584346a2d81575c79aff9e.cn-shenzhen.alicontainer.com/feign/user/labels'
13     response = requests.post(url=url,json=request.json)
14     if isinstance(request.values,dict):
15         return jsonify(response.json())
16     else:
17         return jsonify({"code":500,"msg":"参数错误!"})
18 
19 if __name__ == '__main__':
20     app.run("0.0.0.0",1234)

test.py
 1 # -*- coding: utf-8 -*-
 2 # Author : Ethan
 3 # Time : 2023/5/16 11:35
 4 import json
 5 import unittest
 6 from  user_labels_api import app
 7 class Flask01_Test(unittest.TestCase):
 8     def setUp(self):
 9         self.app = app
10         app.config['TESTING'] = True
11         self.client = app.test_client()
12 
13     def test01(self):
14         """新用户"""
15         data = [{"userId":"20211009102601932734","firstDimension":"TAKEOUT","thirdDimension":"","secondDimension":"STOREID:21022"}]
16         response = self.client.post('/feign/user/labels/',json=data)
17         resp_json = response.json
18         self.assertEqual('TAKEOUT_STORE_NEW' , resp_json[0]['userLabels'][0],resp_json[0]['userLabels'][0])
19 
20     def test02(self):
21         """活跃用户"""
22         data = [{"userId":"20211009102601932734","firstDimension":"TAKEOUT","thirdDimension":"","secondDimension":"STOREID:20627"}]
23         response = self.client.post('/feign/user/labels/', json=data)
24         resp_json = response.json
25         self.assertEqual('TAKEOUT_STORE_ACTIVE' , resp_json[0]['userLabels'][0],resp_json[0]['userLabels'][0])
26 
27     def test03(self):
28         """流失用户"""
29         data = [{"userId":"20211009102601932734","firstDimension":"TAKEOUT","thirdDimension":"","secondDimension":"STOREID:20999"}]
30         response = self.client.post('/feign/user/labels/', json=data)
31         resp_json = response.json
32         self.assertEqual('TAKEOUT_STORE_LOSS' , resp_json[0]['userLabels'][0],resp_json[0]['userLabels'][0])
33 
34     def test04(self):
35         """用户id为空"""
36         data = [{"userId": "", "firstDimension": "TAKEOUT", "thirdDimension": "",
37                  "secondDimension": "STOREID:20999"}]
38         response = self.client.post('/feign/user/labels/', json=data)
39         resp_json = response.json
40         self.assertEqual(222000001, resp_json['code'],resp_json['code'])
41 
42     def test05(self):
43         """批量获取用户标签"""
44         data = [{"userId":"20211009102601932734","firstDimension":"TAKEOUT","thirdDimension":"","secondDimension":"STOREID:20627"},
45                        {"userId": "20211009102601932734", "firstDimension": "GROUP", "thirdDimension": "",
46                         "secondDimension": "STOREID:20627"}]
47         response = self.client.post('/feign/user/labels/', json=data)
48         resp_json = response.json
49         for i in resp_json:
50             if i['firstDimension'] == 'TAKEOUT':
51                 assert 'TAKEOUT_STORE_ACTIVE' == i['userLabels'][0], i['userLabels'][0]
52             elif i['firstDimension'] == 'GROUP':
53                 self.assertEqual( 'TAKEOUT_STORE_LOSS', i['userLabels'][0], i['userLabels'][0])
54 
55 
56 if __name__ == '__main__':
57     unittest.main()


 

标签:__,flask,unittest,单元测试,self,TAKEOUT,json,response,resp
From: https://www.cnblogs.com/Ethan-Sun/p/17427404.html

相关文章

  • Flask与Django项目运行
    Django要运行Django项目,你可以按照以下步骤进行操作:1.确保你已经安装了Python和Django。如果你还没有安装它们,请先安装它们。2.打开终端或命令提示符。3.导航到你的Django项目的根目录。这是包含manage.py文件的目录。4.运行以下命令以应用数据库迁移:pythonmanage.pymigra......
  • flask_SQLAlchemy 出现了 Lost connection to MySQL server during query Mysql主机连
    使用pythonflask框架 flask_sqlalchemy时出现了LostconnectiontoMySQLserverduringqueryMysql主机连接超时的问题由于Mysql会定时处理长时间未连接使用的连接池具体时长可通过查看showvariableslike'%timeout%' wait_timeout为超时时长,这里的时间时120秒......
  • Flask路由
    Flask路由1.指定路由地址#指定访问路径为[email protected]('/hello')defdemo1():return'helloworld'2.给路由传参#路由传递参数@app.route('/user/<user_id>')defuser_info(user_id):return'hello%s'%user_id#路由传递的参数默认......
  • Flask熟悉
    Flask熟悉1.安装flaskpip3installflask2.一个最小的Flask应用fromflaskimportFlaskapp=Flask(__name__)@app.route("/")defhello_world():return"<p>Hello,World!</p>"那么,这些代码是什么意思呢?首先我们导入了Flask类。该类的实例将会成为我们......
  • Flask相关配置参数,加载配置文件
    Flask相关配置参数,加载配置文件#导入Flask类fromflaskimportFlask#Flask函数接收一个参数__name__,它会指向程序所在的包app=Flask(__name__)#装饰器的作用是将路由映射到视图函数[email protected]('/')defindex():return'HelloWorld'#Flask应用程......
  • python 云服务器部署 flask 项目
    测试模式,非生产模式1.修改host和port 2.上传项目 3.下载python项目管理器  4.创建项目 5.开放端口,远程连接数据库......
  • flask-app01
    flask+rpc提供json-rpc接口apicloud+vue客户端APP搭建功能模块:用户管理、社交模块、果园模块、抽奖模块、直播群聊模块 服务端项目搭建创建虚拟环境condacreate-nyingmingpython=3.8condaactivateyingming 安装开发中使用的依赖模块pipinstallflaskpip......
  • Pytest单元测试报告用例标题中文名称怎么显示(转载)
    背景基础不牢,地动山摇。在开发编程一途,尤为重要。有python同学喜欢使用pytest框架实现接口自动化测试方案,在使用参数化过程中,无论是控制台还是测试报告中都没有展示用例名称(中文),而是参数化过程的参数顺序,如下图所示:从报告效果上看,存在不知道fail的用例是哪......
  • SpringBoot单元测试只${spring.profiles.active}异常
    在使用SpringBoot进行单元测试时,如果遇到「couldnotresolveplaceholder'spring.profiles.active'」的错误提示,通常是因为你在测试用例中使用了@ActiveProfiles注解来激活某些特定的配置文件,但是你的项目中并没有这些指定的配置文件。为了解决这个问题,你需要检查你的测试......
  • Tornado 和 flask 的区别
    Tornado和Flask是PythonWeb开发的两种框架,他们有以下区别:应用场景不同:Tornado主要用于实时Web服务和长轮询等场景,例如消息推送,Flask则用于传统的Web应用。性能不同:Tornado采用了异步非阻塞的IO模型,而Flask则是阻塞模型,因此在高负载的情况下,Tornado相对于Flask拥有着更好的性能......