zoukankan      html  css  js  c++  java
  • 接口测试入门

    还是先上代码:

    data_test.py
    from openpyxl import load_workbook
    class Date_test():
        @classmethod
        def Date_test_1(cls):
            """
            配置文件读取模块
            :return:
            """
            wb = load_workbook("data_test.xlsx")
            ws = wb.get_sheet_by_name("Sheet1")
            url = 'http://localhost/api'
            list1 = []
            for i in range(1, ws.max_row + 1):
                list = []
                for j in range(1, ws.max_column + 1):
                    if j == 3:
                        str = url + ws.cell(i, j).value
                    else:
                        str = ws.cell(i, j).value
                    list.append(str)
                list1.append(list)
            wb.close()
            Dict = {}
            for i in list1:
                str = ",".join(i)
                list = []
                list = str.split(",",1)
                Dict[list[0]] = list[1]
            return Dict
        def Date_test_2(self,test_function,test_text,x):
            """
            运行结果写入模块
            :param test_function:
            :param test_text:
            :param x:
            :return:
            """
            wb = load_workbook("data_test.xlsx")
            ws = wb.get_sheet_by_name("Sheet2")
            ws.cell(x,1).value = test_function
            ws.cell(x,2).value = test_text
            wb.save("data_test.xlsx")
            wb.close()
    
    #Http_pg.py
    import requests
    class HTTP_CONSOLE():
        def http_console(self,Method,url,parameter,Cookies= None):
            if Method == "POST":
                result = requests.get(url=url,params=parameter,cookies=Cookies)
            elif Method =="GET":
                result = requests.post(url=url,data=parameter,cookies=Cookies)
            else:
                print("请求方式输入错误,目前仅支持POST/GET两种请求方式!")
    
            return result
    
    #test_Case.py
    from data_test import *
    from Http_pg import *
    import json
    
    class test_case():
    
        Cookie = {}
    
        def test_register(self):
            str = Date_test.Date_test_1()["register"]
            list = str.split(",")
            Method = list[0]
            url = list[1]
            Dict_login = {}
            Dict_login["mobilephone"] = eval(list[2])
            Dict_login["pwd"] = eval(list[3])
            result = HTTP_CONSOLE().http_console(Method=Method, url=url, parameter=Dict_login)
            Date_test().Date_test_2(test_function="register",test_text=json.loads(result.text)["msg"],x=1)
    
        def test_login(self):
            str = Date_test.Date_test_1()["login"]
            list = str.split(",")
            Method = list[0]
            url = list[1]
            Dict_login= {}
            Dict_login["mobilephone"] = eval(list[2])
            Dict_login["pwd"] = eval(list[3])
            result = HTTP_CONSOLE().http_console(Method=Method,url=url,parameter=Dict_login)
            self.Cookie = result.cookies
            Date_test().Date_test_2(test_function="login", test_text=json.loads(result.text)["msg"],x=2)
    
        def test_recharge(self):
            str = Date_test.Date_test_1()["recharge"]
            list = str.split(",")
            Method = list[0]
            url = list[1]
            Dict_login = {}
            Dict_login["mobilephone"] = eval(list[2])
            Dict_login["amount"] = eval(list[3])
            result = HTTP_CONSOLE().http_console(Method=Method, url=url, parameter=Dict_login,Cookies = self.Cookie)
            Date_test().Date_test_2(test_function="recharge", test_text=json.loads(result.text)["msg"], x=3)
    
        def test_withdraw(self):
            str = Date_test.Date_test_1()["withdraw"]
            list = str.split(",")
            Method = list[0]
            url = list[1]
            Dict_login = {}
            Dict_login["mobilephone"] = eval(list[2])
            Dict_login["amount"] = eval(list[3])
            result = HTTP_CONSOLE().http_console(Method=Method, url=url, parameter=Dict_login,Cookies = self.Cookie)
            Date_test().Date_test_2(test_function="withdraw", test_text=json.loads(result.text)["msg"], x=4)
    
    if __name__ == '__main__':
        test = test_case()
        test.test_register()
        test.test_login()
        test.test_recharge()
        test.test_withdraw()
    

    注意点:

        没有太多的注意点,有的我在前面的随笔也都写过了,这个注意下cookies的传值就行了,其他的没什么可关注的

    后记:

        其实原本是打算写成unittest框架然后放出来的,实际上也写了,关键在cookies的传值上卡住了,考虑过写到xlsx的Sheet3中然后读取传值,但是很不幸测试的网址cookies不是字典而是对象,没办法写入,只能看是换个框架还是考虑别的方法了

    最后附上失败的成果:

  • 相关阅读:
    iOS强引用和弱引用
    HTTP和Socket的区别
    iOS日期加减
    iOS判断日期A是否在日期B到日期C之间
    分布式锁与实现(一)——基于Redis实现 【比较靠谱】
    Redisson实现分布式锁
    Redisson分布式锁实现
    从redis中取值如果不存在设置值,使用Redisson分布式锁【我】以及不使用锁的方式
    redisson整合spring
    如何优雅地用Redis实现分布式锁?
  • 原文地址:https://www.cnblogs.com/keima/p/10689826.html
Copyright © 2011-2022 走看看