#demo.py

import requests
import json class RunMain:
def __init__(self, url, method, data=None):
self.data = data
self.url = url
self.method = method
self.res = self.run_main() def url_post(self):
res = requests.post(url = self.url, data = self.data).json()
return res def url_get(self):
res = requests.get(url= self.url, data = self.data).json()
return res # res 返回的json数据
# indent 缩进展示
# sort_keys 排序
# return json.dumps(res,indent = 2, sort_keys = True) #再封装一个方法,让它执行post和get请求 def run_main(self):
res = None
if self.method == 'GET':
res = self.url_get() else:
res = self.url_post()
return res if __name__ == "__main__":
url_p = "https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/upload"
data = {
"hello":"world",
"botoo":""
} url_g ="https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/query" g = RunMain(url_g,"GET").res print(g)
p = RunMain(url_p,"POST",data = data ).res print(p)
#unittest-test.py

import unittest
from demo import RunMain
import HtmlTestRunner class TestMethod(unittest.TestCase):
#类方法 @classmethod
def setUpClass(cls):
print("类执行之前的方法") @classmethod
def tearDownClass(cls):
print("类执行之后的方法") #每次方法之前执行
def setUp(self):
print("setup") def test_01(self): url_p = "https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/upload"
data = {
"hello":"world",
"botoo":""
} res = RunMain(url_p,"POST",data).res
#print(res)
self.assertIn("undefined_http",str(res['data']))
globals()['img'] = res['data']['img'] #加入缓存 def test_02(self):
print(img) url_g ="https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/query"
res = RunMain(url_g,"GET").res
self.assertEqual("hah",res['data']['name'])
#print(res) @unittest.skip
def test_03(self):
print(img) #每次方法之后执行
def tearDown(self):
print("teardown") if __name__ == "__main__":
"""
#方法一:
unittest.main()
""" """
#方法二:
#加入容器中执行
suite=unittest.TestSuite()
suite.addTest(TestMethod("test_01"))
suite.addTest(TestMethod("test_02"))
suite.addTest(TestMethod("test_03"))
unittest.TextTestRunner().run(suite)
""" """
#方法三:
#加入测试报告,执行所有case
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='example_dir'))
""" """
#方法四:
#加入测试报告,执行加入容器的case
suite = unittest.TestSuite()
suite.addTest(TestMethod("test_01"))
suite.addTest(TestMethod("test_02"))
suite.addTest(TestMethod("test_03"))
testRunner=HtmlTestRunner.HTMLTestRunner(output='example_dir')
testRunner.run(suite)
"""

unittest===unittest 的几种执行方式的更多相关文章

  1. PyCharm上unittest 测试用例两种执行方式

    每次讲到unittest测试框架的时候,经常有同学在群里反映,为啥我的运行不是按照我往suite里添加的用例顺序执行的,为什么别人的能跑出来报告,我的就不行... 当然,首先确认代码是OK的,如果代码 ...

  2. 读书笔记——spring cloud 中 HystrixCommand的四种执行方式简述

    读了<Spring Cloud 微服务实战>第151-154页, 总结如下: Hystrix存在两种Command,一种是HystrixCommand,另一种是HystrixObserva ...

  3. python常有模块:模块、引入语法、两种执行方式、模块搜索顺序

    今天主要讲了以下几点:一.模块三问.定义及分类二.import和from的语法三.文件的两种执行方式及搜索顺序四.内置函数 一.模块.import和from的语法 1.什么是模块   模块是一堆功能函 ...

  4. Pycharm上python运行和unittest运行两种执行方式解析

    前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告,为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittes ...

  5. 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  6. 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  7. Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  8. Shell脚本的三种执行方式

    Shell脚本的执行方式可以有以下几种: 方式一:  ./script.sh # 利用小数点来执行 方式二:  sh script.sh 或 bash script.sh # 利用bash(sh)来执 ...

  9. hive命令的三种执行方式

    hive命令的3种调用方式 方式1:hive –f  /root/shell/hive-script.sql(适合多语句) hive-script.sql类似于script一样,直接写查询命令就行 不 ...

  10. shell教程-001:shell简介 什么是shell,shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的. Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解 ...

随机推荐

  1. Python库的使用之-Sys模块

    Python标准库之sys模块使用详解,讲解了使用sys模块获得脚本的参数.处理模块. 使用sys模块操作 模块搜索路径.使用sys模块查找内建模块.使用sys模块查找已导入的模块,重定向输出以及重定 ...

  2. CodeForces - 1207G :Indie Album(AC自动机 fail树上DFS)

    题意:有N个串,给出的形式是拼接给出,对于第i行:  (1,c)表示字符串i是单个字母c: (2,p,c)表示字符串i=在字符串p后面接上一个字母c. 然后给出M个提问,形式是(i,string).问 ...

  3. 阿里巴巴Java开发手册(命名规范/常量定义篇)——查自己的漏-补自己的缺

    一.编程规约 (一) 命名规约 1. [强制]所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Object / name_ / ...

  4. scala 学习笔记--集合

    1.scala集合的null 是nil 而不是null 2.set的三个方法union,intersect,diff union--合并去重 intersect--交集 diff--a减去(a和b交集 ...

  5. UFUN函数UF_MODL UF_DISP UF_OBJ(name_switch) ( UF_DISP_ask_name_display_status、UF_DISP_set_name_display_status)

    /* TODO: Add your application code here */ /* 此程序主要演示的是name_switch (设置名称显示) */ UF_initialize(); //MO ...

  6. 再谈System.BadImageFormatException

    今天,当我们继续学习.NET异常处理系列时,我们将查看System.BadImageFormatException.System.BadImageFormatException与GIF或JPG无关,而 ...

  7. 什么是JSON Web Token

    JSON Web Token(JWT)是一个基于 RFC 7519 的开放数据标准,它定义了一种宽松且紧凑的数据组合方式,使用 JSON  对象在各应用之间传输加密信息.该 JSON 对象可以通过数字 ...

  8. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

    1 报错描述 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @Boot ...

  9. 数位dp技巧

    一个奇怪的东西 正反都能dp!: 正常我们数位dp都是从高到低,以这样的方式保证其小于给定数-> ll n; int num[N],l; ll dp[]; ll dfs(int p,int li ...

  10. [Gamma阶段]第五次Scrum Meeting

    Scrum Meeting博客目录 [Gamma阶段]第五次Scrum Meeting 基本信息 名称 时间 地点 时长 第五次Scrum Meeting 19/05/31 大运村寝室6楼 30min ...