get \post 接口代码及断言编写
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 接口代码及断言编写的更多相关文章
- Java认证:JavaRunnable线程编写接口代码
Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...
- 我的第一个python web开发框架(33)——接口代码重构
前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了.因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了. 在写ORM模块时,我们已经对 ...
- 基于swagger进行接口文档的编写
0. 前言 近期忙于和各个银行的代收接口联调,根据遇到的问题,对之前编写的接口进行了修改,需求收集和设计接口时想到了方方面面,生产环境下还是会遇到意想不到的问题,好在基本的执行逻辑已确定,因此只是对接 ...
- Jmeter接口之响应断言详解
响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...
- 教你如何帮助前端同学快速生成API接口代码
最近我们团队开源的后端微服务框架go-zero增长势头比较迅猛,这篇文章我讲讲go-zero对前端团队的作用,并通过一个示例来给大家演示我们是怎么做的,希望能给后端的同学也可以帮助前端同学提高开发效率 ...
- php短信接口代码
这篇文章主要为大家详细介绍了php短信接口代码,php短信发送.php批量发送.php获取余额等代码,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内 ...
- Swagger结合mustache模板生成后台接口代码、以及前后台建模代码
之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一 ...
- 面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的?
声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点 JVM是 JAVA Virtual Machine 三个英文单词的首字母缩写,翻译成中文就是Java虚 ...
- 新西达电调初始化代码,使用nodejs ffi技术调用wiringpi,代码使用typescript编写
这是我设计的F450四轴飞行器飞控代码的一部分 运行在orangepi-zero上,操作系统是armbian,思路是使用node-ffi调用wiringpi的so库与GPIO通信,然后控制端逻辑代码使 ...
随机推荐
- pdfFactory全景手柄使用方法介绍
当文档中存在一些照片,或使用的字体过小时,大家可能会使用放大的功能,将文档的页面进行放大处理.此时,页面就会仅显示局部,为了查看页面的其他内容,就要使用到全景手柄来移动页面. pdfFactory的全 ...
- Idea中如何导入jar包
1.首先在idea左上角找到" File ",然后找到 "Project structure" 2.接着选择 " java ",选择后接着会 ...
- JQuery案例:折叠菜单
折叠菜单(jquery) <html> <head> <meta charset="UTF-8"> <title>accordion ...
- 如何让文科生5分钟写上Python
序言 这篇文章是转型后发表的第一篇文章,有必要先聊一下我的写文计划. 串行文章和并行文章 我会按照发文顺序分为串行文章和并行文章.Python 语言本身的内容,我会按照入门.进阶.原理的顺序依次展开. ...
- Mybatis【2.2】-- Mybatis关于创建SqlSession源码分析的几点疑问?
代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning ],可直接运行,就不占篇幅了. 目录 1.为什么我们使用SQLSessionFact ...
- copy/b一个隐藏文件的小技巧
首先找一张图片 再放一个我们想隐藏的东西 压缩一下 新建txt文本文件b.txt,输入这段代码 copy/b namei.jpg + a.rar namei2.jpg 保存,将文件名改为b.bat 双 ...
- 一道百度java面试题的多种解法
下面是我在2018年10月11日二面百度的时候的一个问题: java程序,主进程需要等待多个子进程结束之后再执行后续的代码,有哪些方案可以实现? 这个需求其实我们在工作中经常会用到,比如用户下单一个产 ...
- 使用Jmeter测试快速入门
一 创建线程组 1.1.2. 线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. 1.1.3. 线程数:虚拟用户数.一个虚拟用户占用 ...
- 微软面试题: LeetCode 151. 翻转字符串里的单词 出现次数:6
题目描述: 给定一个字符串,逐个翻转字符串中的每个单词. 说明: 无空格字符构成一个 单词 .输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括.如果两个单词间有多余的空格,将反转后 ...
- moviepy音视频开发:audio_fadein、fadeout实现声音淡入淡出
☞ ░ 前往老猿Python博文目录 ░ 一.概述 为了支持一些常规的音频变换处理,moviepy提供了一系列常用的变换函数,开发者可以直接使用这些方法进行变换,这些函数都在moviepy.audio ...