怎樣從0開始搭建一個測試框架_11——支持方法

怎樣從0開始搭建一個測試框架_11

框架到這裏已經很不錯了,後面就需要各位自己去完善了。比如有時候請求需要加密、簽名,還有一些支持方法,可以在utils中建個support.py放進去。

在utils中創建一個support.py文件,裏面可以放需要的一些支持方法,我們示例一個加密和簽名的方法:

"""一些支持方法,比如加密"""
import hashlib
from utils.log import logger


class EncryptError(Exception):
    pass


def sign(sign_dict, private_key=None, encrypt_way='MD5'):
    """傳入待簽名的字典,返回簽名後字符串
    1.字典排序
    2.拼接,用&連接,最後拼接上私鑰
    3.MD5加密"""
    dict_keys = sign_dict.keys()
    dict_keys.sort()

    string = ''
    for key in dict_keys:
        if sign_dict[key] is None:
            pass
        else:
            string += '{0}={1}&'.format(key, sign_dict[key])
    string = string[0:len(string) - 1]
    string = string.replace(' ', '')

    return encrypt(string, salt=private_key, encrypt_way=encrypt_way)


def encrypt(string, salt='', encrypt_way='MD5'):
    u"""根據輸入的string與加密鹽,按照encrypt方式進行加密,並返回加密後的字符串"""
    string += salt
    if encrypt_way.upper() == 'MD5':
        hash_string = hashlib.md5()
    elif encrypt_way.upper() == 'SHA1':
        hash_string = hashlib.sha1()
    else:
        logger.exception(EncryptError('請輸入正確的加密方式,目前僅支持 MD5 或 SHA1'))
        return False

    hash_string.update(string.encode())
    return hash_string.hexdigest()

if __name__ == '__main__':
    print(encrypt('100000307111111'))

根據你實際情況的不同,在其中添加其他支持方法。

就寫這麼多了,你可以根據這個思路補充擴充,來實現你自己的測試框架,也可以自己調整框架的分層與結構,框架的目的是爲了簡化我們用例編寫和維護的工作量,也沒必要把框架搞的太過複雜。
所有的代碼我都放到了GITHUB上傳送,可以自己下載去學習,有什麼好的建議或者問題,可以留言或者加我的QQ羣:455478219討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章