接口自动化之测试数据动态生成并替换

文章介绍了如何在Python测试中使用random和Faker库来生成随机数据,并详细阐述了如何将这些数据动态地应用到项目用例中,包括查找标志位、替换关联参数的方法。同时,提供了完整版文档的下载方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

测试数据

1. 随机库random

2. Faker库

3. 应用到项目中


测试数据

1. 随机库random

查看内置random方法,该方法自行学习,不再介绍。

show

2. Faker库

pip install faker

show

3. 应用到项目中

3.1 思路
在用例数据中添加标志位,设计这个标志位为

{{特殊的变量名}}

例如生成手机号码的标志位为

{{ phone_number }}

什么字段里有可能有这个标志

  • request_data
  • sql
  • url
  • header
  • expected

检查用例数据,如果出现了标志则动态生成对应数据并替换

3.2 用例数据修改

def replace_dependent_parameter(self, jst):
        """
        替换字符串中的关联参数,并返回转化后的字典格式。
        Args:
            jst: 包含接口参数的字符串
        Returns:转换后的字典或原始字符串
        """
        if not jst:
            return jst
        jst = json.dumps(jst) if isinstance(jst, (dict, list)) else jst
        # 替换
        while self.PATTERN.search(jst):
            key = self.PATTERN.search(jst).group()
            # 字符串替换
            if key in self.dependence.keys():
                jst = jst.replace(key, str(self.get_dependent_value(key)))
                logger.my_log(f"key:{key},替换成功:{self.get_dependent_value(key)}")
            else:
                logger.my_log(f"key:{key},在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常\n")
                break
                jst = jst.replace("True", "true").replace("False", "false")
        if self.pattern.search(jst):
            try:
                jst = json.loads(jst)
            except json.JSONDecodeError as e:
                logger.my_log(f"JSONDecodeError:{jst}:{e}")
 
        return jst

🎁更多干货


完整版文档下载方式:

这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。

在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。


如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!