ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

花了两天研究的测试用例的字符串提取方式,直接拿走

2022-01-11 20:01:12  阅读:181  来源: 互联网

标签:case res mark 测试用例 str 字符串 拿走 Data 替换


我们前面跟大家分享了接口之间的数据依赖关系,解决接口之间的关系依赖方式是:

第一步:先通过jsonpath 去提取值,第二步我们接着再替换值

那么我们这个值是怎么进行替换的呢?

——直接从我们建立的Data 类(我们建立的my_data全局变量文件)当中取属性值为替换

 

还有:

1、在一条测试用例当中,你是怎么知道哪些值需要替换,哪些不需要呢?

——解决方法:打标记 #全局变量名#。

 

2、一条测试用例数据中,url 、data 、assert 要替换的话,你是怎么识别到有多少字段需要替换呢?你是怎么处理的?

——解决方法:一条用例当中,从excel 当中读取出来是一个字典,把字典转换成字符串,统一从字符串找所有的标识符。

 

3、一条测试用例数据当中,要替换多个不同的数据,你是怎么处理的?也就说,怎么样能把所有的mark 一次性找出来

——解决方法:不同的mark ,通过正则表达式,全部都找到了并且放在了列表当中。遍历标记符mark 列表,如果mark 是全局

变量的属性名,那么就将mark 替换为真实的值。

 

4、你是如何将用例中要替换的标识,与Data 全局变量关联起来的?

——解决方法:标识符# ,要与Data 类属性名匹配。

示例代码如下:

 

 

"""
 框架当中,提取标识符(mark)的正则表达式:
res = re.findall("#(\w+)#",ss2)
print(res)
res的结果:是一个列表。如果列表不为空,表示提取到了标识符(mark)
"""

import re
from common.my_data import Data

# 第一步:准备一条测试数据
case = {
    "url":"member/login",
    "method":"post",
    "req_data": '{"mobile_phone":#user#,"pwd":#passwd#}',
    "extract": '{"token":"$..token","member_id":"$..id","leave_amount":"$..leave_amount"}'
}

# 第二步,把excel当中的一整个测试用例(excel当中的一行)转换成字符串
case_str = str(case)
print(case_str)

# 第三步,利用正则表达式提取mark标识符
res = re.findall("#(\w+)#",case_str)
print(res)

# 第四步:遍历标识符mark,如果标识符是全局变量Data类的属性名,则用属性值替换掉mark
if res:
    for mark in res:
        # 如果全局变量Data类有mark这个属性名
       if hasattr(Data, mark):
           # 使用全局变量Data类的mark属性值,去替换测试用例当中的#mark#
           case_str = case_str.replace(f"#{mark}#", getattr(Data,mark))

print(case_str)
# 第五步:将完全替换后的一整个测试用例,转换回字典
case_dict = eval(case_str)
print(case_dict)

 

标签:case,res,mark,测试用例,str,字符串,拿走,Data,替换
来源: https://www.cnblogs.com/luoye1/p/15789815.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有