零基础小白(十二) Excel参数化实战替换

零基础小白 接口自动化测试集锦: https://www.jianshu.com/nb/49125734

引言

上篇文章https://www.jianshu.com/p/7a18f530b5b0 分享了执行前置条件测试用例方法,本篇继续探讨当前用例token实时动态替换为参数传入。

思路分析

  • 替换传参变量--验证请求中是否含有下图标识符,返回下图标识符内容


    标识符.jpg
  • 根据内容token,查询前置条件测试用例返回结果token = 值
  • 根据变量结果内容,替换

通过思路分析发现引用了正则表达式,通过举例学习正则表达式

正则表达式--样例

#1.验证请求中是否${}$,返回${}$内容
import re
str1 = '{"deviceType": "2","requestToken":"${requestToken}$"}'
if '${' in str1:
    print(str1)
pattern = re.compile('\${(.*)}\$')
re_res = pattern.findall(str1)
print(re_res)
print(re_res[0])
#2.根据内容token,查询前置条件测试用例返回结果token = 值
requestToken = 'I5NTkxNWIzYi1iZWZkLTM1ZWQtYWZiNi0yM2Q3MDkyZDBiODIiLCJhcHBJZCI6ODAwMDUsImNoYW5uZWwiOjIwM'
#3.根据变量结果内容,替换
res = re.sub(pattern,requestToken,str1)
print(res)

通过实例总结思路

  • 1、公共方法--查询和替换
  • 2、公共方法--验证请求中是否{},返回{}内容
    标识符.jpg
  • 3、关联方法

代码设计

Base.py公共脚本-新增正则查询

def res_find(data,pattern_data = p_data):
    """
    前置条件--正则查询
    :param data:
    :param pattern_data:
    :return:
    """
    # pattern = re.compile('\${(.*)}\$')
    pattern = re.compile(pattern_data)
    re_res = pattern.findall(data)
    return re_res

if __name__ == "__main__":
    print(res_find('{"deviceType": "2","requestToken":"${requestToken}$"}')[0])
正则查询结果.jpg

Base.py公共脚本-新增正则替换

def res_sub(data,replace,pattern_data = p_data):
    """
    前置条件--正则替换
    :param data: 参数化值在所需查询范围内的值
    :param replace: 前置条件接收的值用来替换
    :param pattern_data: 默认p_data固定值
    :return:
    """
    pattern = re.compile(pattern_data)
    re_res = pattern.findall(data)
    if re_res: #判断是否查询到前置条件值
       return re.sub(pattern_data,replace,data)
    return re_res

if __name__ == "__main__":
    print(res_find('{"deviceType": "2","requestToken":"${requestToken}$"}')[0])
    print(res_sub('"deviceType": "2","requestToken":"${requestToken}$"}',"I5NTkxNWIzYTM1ZiNi0yM2"))
正则替换结果.jpg

Base.py公共脚本-新增结果关联

#验证请求中是否有依赖结果的
def params_find(headers,cookies,params):
    """
    验证请求中是否有${}$需要结果关联
    :param headers: 游戏Api使用accessToken"
    :param cookies:
    :param params: SDK Api使用到参数化
    :return:
    """
    if '${' in headers:
        headers = res_find(headers)
    if '${' in cookies:
        headers = res_find(cookies)
    if '${' in params:
        headers = res_find(params)
    return headers,cookies,params

test_excel_case.py新增关联方法


    def get_correlation(self,headers,cookies,params,pre_res):

        """
        关联
        :param headers:
        :param cookies:
        :param pre_res:
        :return:
            """
        # 验证是否有关联
        headers_para, cookies_para, params_para = Base.params_find(headers, cookies, params)
        # # print(headers_para)
        # 有关联,执行前置用例,获取结果
        if len(headers_para):
            headers_data = pre_res["data"][headers_para[0]]
            # 结果替换
        headers = Base.res_sub(headers, headers_data)


        # 有关联,执行前置用例,获取结果
        if len(params_para):
            params_data = pre_res["data"][params_para[0]]
            # 结果替换
        params = Base.res_sub(params, params_data)

        # 有关联,执行前置用例,获取结果
        if len(cookies_para):
            cookies_data = pre_res["data"][cookies_para[0]]
            # 结果替换
        cookies = Base.res_sub(cookies, cookies_data)
        return headers, cookies, params
运行成功.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容