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()
注:设置一个全局变量,第二个接口可以直接使用
手机扫一扫
移动阅读更方便
你可能感兴趣的文章