get post 接口代码及断言编写

Posted 藤上小冬瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)#执行已添加好的测试套件
注:执行是按照,字母顺序和数字顺序

 

以上是关于get post 接口代码及断言编写的主要内容,如果未能解决你的问题,请参考以下文章

接口测试的步骤特点关注点get和post 区别

Go-动态类型与类型断言详解(含type-switch及全部代码)

Flask 编写http接口api及接口自动化测试

python 接口测试怎么做断言

如何利用JAVA写一个简单的get或者post的接口?

python-接口编写-get和post,真假接口