Skip to content

全局变量在API&UI&Pytest中使用方式

重要提醒

- 跟jmeter类似,使用  **`${{缓存的key}}`** 方法来进行替换中间的内容
- 可以使用**公共方法**中的一些随机数据帮助您进行测试

获取缓存数据

  • 可以在缓存数据中查看缓存的key,API&UI&Pytest都有提供设置缓存方法
用法:${{缓存的key}} 示例:${{user_id}}

获取随机测试数据

用法:${{方法名称()}} 示例:${{random_0_5()}}

获取随机测试数据+存到缓存

增加一个|符号即可获取完成之后直接存起来

用法:${{方法名称()|缓存的key}} 示例:${{random_0_5()|key}}

获取带参数的随机测试数据

用法:${{方法名称(参数=1,参数=10)}} 示例:${{randint(left=1,right=10)}}

可以在模块【帮助-随机数据】中进行测试

图片走丢了

实际代码中替换逻辑如下

mango-pytest项目和自定义函数使用可参考

python
import unittest

from mangotools.data_processor import DataProcessor


class TestCache(unittest.TestCase):

    def test_001(self):
        """设置缓存和使用缓存"""
        value = '设置到缓存中'
        processor = DataProcessor()
        processor.set_cache('value', value)  # 首先我们把value设置一个值
        assert processor.get_cache('value') == value
        return processor.get_cache('value')

    def test_002(self):
        """替换${{}}中间的内容"""
        key = '芒果测试平台'
        value = '替换:${{key}}'
        processor = DataProcessor()
        processor.set_cache('key', key)  # 首先我们把value设置一个值
        assert processor.replace(value) == '替换:芒果测试平台'
        return processor.replace(value)  # 调用replace进行替换

    def test_003(self):
        """获取公共方法中的数据"""
        processor = DataProcessor()
        assert processor.replace('${{md5_32_small(123456)}}') is not None
        return processor.replace('${{md5_32_small(123456)}}')

    def test_004(self):
        """直接将获取到的内容存到缓存中"""
        str_ = "我是基于时间戳的5位随机数:${{number_time_5()|flow名称}}"
        processor = DataProcessor()
        value = processor.replace(str_)
        assert value == f"我是基于时间戳的5位随机数:{processor.get_cache('flow名称')}"
        return f"我是基于时间戳的5位随机数:{processor.get_cache('flow名称')}"

    def test_005(self):
        """获取公共方法中的数据"""
        processor = DataProcessor()
        processor.set_cache('key', '123456')
        assert processor.get_cache('key') == '123456'
        assert processor.replace('${{md5_32_small(${{key}})}}') == 'e10adc3949ba59abbe56e057f20f883e'

    def test_006(self):
        processor = DataProcessor()
        processor.set_cache('key', '123456')
        assert processor.get_cache('key') == '123456'
        assert processor.replace('${{md5_32_small(string=${{key}})}}') == 'e10adc3949ba59abbe56e057f20f883e'

    def test_007(self):
        processor = DataProcessor()
        processor.set_cache('key', '123456')
        assert processor.get_cache('key') == '123456'
        assert processor.replace('${{md5_32_small(${{key}})}}') == 'e10adc3949ba59abbe56e057f20f883e'

    def test_008(self):
        processor = DataProcessor()
        processor.set_cache('key', '123456')
        assert processor.get_cache('key') == '123456'
        assert processor.replace('${{md5_32_small(${{key}},)}}') == 'e10adc3949ba59abbe56e057f20f883e'

Released under the AGPL-3.0 License.

🤖