post 请求接口

import requests
import json
url_path = "http://www.baidu.com"
data = {"username":"mushishi","password":"1234"}
def send_post(url,data):
res = requests.post(url=url_path,data = data)
return res.json()#转换成json格式 send_post(url_path,data)#调用函数直接传入地址及参数

get 请求接口(把参数写在地址后面的写法)

url_path = "http://baidu.com?username=name&passwd=1234"
data = {}
def send_get(url):
#res = requests.get(url=url_path).json()#把参数写在地址后面的写法
return json.dump(res,indent = 2,sort_keys=True)#格式化输出
send_get(url_path)

get 请求接口

import requests
import json
url_path = "http://www.baidu.com"
data = {"username":"mushishi","password":"1234"}
def send_get(url,data):
res = requests.get(url=url_path,data = data)
return res.json()#转换成json格式 send_get(url_path,data)#调用函数直接传入地址及参数

把get 和post封装到一个方法,要使用哪个就调用哪个

import requests
import json def send_get(url,data):
res = requests.get(url,data).json()
return json.dump(res,index = 2,sorted_keys=True) def send_post(url,data):
res = requests.post(url,data).json()
return json.dumdp(res,index=2,sorted_keys=True) def run_main(url,method,data=None):#为了更好的使用get和post所以定data默认空值
res =None#先赋个空值,不管你调用哪个方法都会返回这个值
if method == "get"
res == send_get(url,data)
else:
res == send_post(url,data)
return res
if __name__=="main":
url = "http://www.baidu.com"
data ={"cart":"11"}#有参就传,没参就用默认的
run_main(url,"get",data)
run_main(url,"post",data)
run_main(url,"get")

get 和post 方法封装到类

import requests
import json
class RuanMain():
def __init__(self,url,method,data = None):
self.res = self.run_main(url,method,data) def send_get(self,url,data):
res = requests.get(url=url,data=data,).json()
return json.dump(res,index = 2,sorted_keys=True) def send_post(self,url,data):
res=requests.post(url=url,data=data).json()
return json.dump(res,index=2,sorted_keys=True)
if __name__=="__main__":
url = "http://www.baidu.com"
data={"cart:11"}
run=RuanMain(url,"get",data)
run.res

调用之前封装的runmain类方法进行写用例以及断言

import unittest
import runmain
class TestMethod1(unittest.TestCase):
@classmethod
def setUpClass(cls):#固定取名,不能随便取
print "类执行之前方法" @classmethod
def tearDownClass(cls):
print "类执行之后方法" def setUp(self):#在第一个测试方法执行之前都要先执行这个方法
run = runmain()
def tearDown(self):#每次执行之后都要执行这个方法
print "test--->tearDown"
def test_01(self):#每个测试用例都要以test开头,不然不会执行
url ="htpp://www.baidu.com"
data ={"name":"guo","passwd":"1234"}
run = runmain()
res = self.run.run_main(url,"post",data)
if res["errorCode"]==1001:#用自己的方法判断测试结果
print "测试通过"
else:
print "测试失败"
def test_02(self):#每个测试用例都要以test开头,不然不会执行
url = "http://www.baidu.com"
data = {"name":"guo","password":"123456"}
res = self.run.run_main(url,"get",data)
self.assertEqual(res["errorCode"],1000,"测试失败")#用python方法判断
if __name__=="__main__":
unittest.main()#执行所有测试用例

unittest 过滤执行的用例

import unittest
class _Baidu(unittest.TestCase):
#@unittest.skip("test_01")#执行的时候过滤掉这个
def test_01(self):
print "这是第一个用例"
def test_02(self):
print "这是第二个用"
def test_04(self):
print "这是第三个用例"
def test_03(self):
print "这是第四个用例"
if __name__=="__main__":
#unittest.main()#这是执行所有用例
suite = unittest.TestSuite()
suite.addTest(_Baidu("test_03"))#把需要执行的用例添加到套件去
suite.addTest(_Baidu("test_01"))
unittest.TextTestRunner().run(suite)#执行已添加好的测试套件
注:执行是按照,字母顺序和数字顺序

第一个接口的返回数据做为第二个接口的请求数据

import unittest
import runmain
class TestMethod1(unittest.TestCase):
def setUp(self):#在第一个测试方法执行之前都要先执行这个方法
self.run = runmain()
def tearDown(self):#每次执行之后都要执行这个方法
print "test--->tearDown"
def test_01(self):#每个测试用例都要以test开头,不然不会执行
url ="htpp://www.baidu.com"
data ={"name":"guo","passwd":"1234"}
res = self.run.run_main(url,"post",data)#调用runmain类的run_main方法
self.assertEqual(res["errorCode"],10001,"测试失败")
globals()["userid"]="1000909"#将userid设置为全局变量 def test_02(self):
print userid #前面设置了全局变量,这里可以直接应用,要用第一个接口的返回值做为第二个接口的请求参数
url = "http://ww.baidu.com"
data = {"name":"guo","password":"123456"}
res = self.run.run_main(url,"get",data)
self.assertEqual(res["errorCode"],1000,"测试失败")#用python方法判断 @unittest.skip("test_04")#设置需要跳过的用例
def test_04(self):
print "haha" def test_03(self):
print"jajaja"
if __name__=="__main__":
#unittest.main()#执行所有测试用例
suite = unittest.TestSuite()
注:设置一个全局变量,第二个接口可以直接使用

get \post 接口代码及断言编写的更多相关文章

  1. Java认证:JavaRunnable线程编写接口代码

    Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...

  2. 我的第一个python web开发框架(33)——接口代码重构

    前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了.因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了. 在写ORM模块时,我们已经对 ...

  3. 基于swagger进行接口文档的编写

    0. 前言 近期忙于和各个银行的代收接口联调,根据遇到的问题,对之前编写的接口进行了修改,需求收集和设计接口时想到了方方面面,生产环境下还是会遇到意想不到的问题,好在基本的执行逻辑已确定,因此只是对接 ...

  4. Jmeter接口之响应断言详解

    响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...

  5. 教你如何帮助前端同学快速生成API接口代码

    最近我们团队开源的后端微服务框架go-zero增长势头比较迅猛,这篇文章我讲讲go-zero对前端团队的作用,并通过一个示例来给大家演示我们是怎么做的,希望能给后端的同学也可以帮助前端同学提高开发效率 ...

  6. php短信接口代码

    这篇文章主要为大家详细介绍了php短信接口代码,php短信发送.php批量发送.php获取余额等代码,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内 ...

  7. Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

    之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一 ...

  8. 面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的?

    声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点 JVM是 JAVA Virtual Machine 三个英文单词的首字母缩写,翻译成中文就是Java虚 ...

  9. 新西达电调初始化代码,使用nodejs ffi技术调用wiringpi,代码使用typescript编写

    这是我设计的F450四轴飞行器飞控代码的一部分 运行在orangepi-zero上,操作系统是armbian,思路是使用node-ffi调用wiringpi的so库与GPIO通信,然后控制端逻辑代码使 ...

随机推荐

  1. Boom 3D的广播有哪些,有啥特色

    Boom 3D(Windows系统)不仅为用户提供了包括3D立体音效.古典音乐音效在内的多种音效增强功能,而且还为用户提供了广播功能.该广播功能不仅涵盖了国内广播节目,而且还涵盖了国际广播节目. 接下 ...

  2. C# redis集群批量操作之slot计算出16384个字符串

    引入一个大家都用的到的需求来说吧. 需求:要在三主三从的redis集群,存入数据,会对数据进行批量删除操作,数据要求要在redis集群负载均衡. 思路: 1.存入数据好办 1 var connect ...

  3. 实战教程:如何将自己的Python包发布到PyPI上

    1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...

  4. MySql学习笔记--详细整理--下

    目录 索引 测试索引 索引原则 权限管理和备份 备份 规范数据库设计 三大范式 JDBC JDBC程序 Statement对象 工具类实现 sql注入 PreparedStatement对象 事务 数 ...

  5. PowerManagerService流程分析

    一.PowerManagerService简介 PowerManagerService主要服务Android系统电源管理工作,这样讲比较笼统,就具体细节上大致可以认为PowerManagerServi ...

  6. CentOS7配置时间和CentOS6搭建局域网NTP

    NTP 2015年8月20日 星期四 17:34 CentOS 7配置本地时区和TIME ZONE #用tzselect配置时区和time zone [root@localhost Asia]# /u ...

  7. Ubuntu\Linux 下编写及调试C\C++

    一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...

  8. 从代码角度理解NNLM(A Neural Probabilistic Language Model)

    其框架结构如下所示: 可分为四 个部分: 词嵌入部分 输入 隐含层 输出层 我们要明确任务是通过一个文本序列(分词后的序列)去预测下一个字出现的概率,tensorflow代码如下: 参考:https: ...

  9. 第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反

    一. 引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是组模式的扩 ...

  10. spring框架半自动注解

    为了简便我们的开发,让我们一起来学习半自动注解吧. 让Spring管理某些类 1.在需要被SpringIOC容器管理的类上打上相应的注解 @Component:任意组件 @Controller:控制层 ...