我在存储用于测试API的大负载方面遇到了问题。我找不到任何合理的方法来存储它们和覆盖值。有效载荷有200-300行。
在这些有效负载中,有些值是相同的(比如一个有效负载中有5-7次),有些是恒定的,有些我必须在每次测试运行时更改。
目前,我有payloads.py文件,其中包含以下变量
scenario_1={
"request1":{200-300 lines payload},
"request2":{200-300 lines payload}
scenario_2={
"request1":{200-300 lines payload},
"request2":{200-300 lines payload},
"request3":{200-300 lines payload}
etc
然后我有这样的函数:
def find_paths_with_value_and_replace(self, json, value_to_replace, replace_with):
if isinstance(json, dict):
for key, val in json.items():
if val == value_to_replace:
json[key] = replace_with
elif isinstance(val, (dict, list)):
self.find_paths_with_value_and_replace(val, value_to_replace, replace_with)
elif isinstance(json, list):
for item in json:
self.find_paths_with_value_and_replace(item, value_to_replace, replace_with)
return json
然后在test中,我有prepare_test_data,其中我有像{operation_id}
(在www.example.com中相同的名称)这样的值要替换payloads.py,并用faker生成的id填充它们,并返回准备好的json进行测试。
我敢打赌,有一个更好的方法来做到这一点,更容易,但我找不到任何合理的如何存储这些有效载荷和改变一些键的值。
1条答案
按热度按时间2hh7jdfx1#
我最终在repo中拥有了模板json文件,然后编辑了我必须编辑的prepare方法中的所有键,并且没有使用该函数。
prepare方法看起来像这样: