Есть ли способ сгенерировать случайную строку внутри ключа словаря?

#robotframework

#robotframework

Вопрос:

У меня есть ключевое слово, которое генерирует несколько случайных данных, используя ключевое слово Generate Random String, и в настоящее время я создаю переменные для хранения этих сгенерированных случайных строк.

То, как я это делаю, выглядит следующим образом

 Generate Random Form Data
    ${variable1}         Generate Random String    8             [Letters]
    ${variable2}         Generate Random String    8             [Letters]
    ${variable3}         Generate Random String    8             [Letters]
 

Есть ли какой-либо способ сгенерировать эти строки внутри словаря, например, так?

 Generate Random Form Data
    ${variable}          Create Dictionary
    Set To Dictionary    ${variable}               first_name    Generate Random String    8    [Letters]
 

Попытка сделать, как в приведенном выше примере, генерирует словарь с двумя ключами: firstname и 8, когда все, что я хотел, это создать словарь с одним ключом со случайной строкой.

Ответ №1:

Короче говоря — нет, не могу сделать это так; Set To Dictionary принимает все, что вы передаете, и устанавливает его непосредственно в качестве значения.
Это то же самое для (почти) всех ключевых слов в Robot Framework — вы не можете указать в качестве аргумента другое ключевое слово, возвращаемое значение которого будет использоваться в качестве аргумента вызывающего.

В этом случае, однако, это легко решаемо, выполнив столько итераций генерации случайных значений и добавив их в словарь — например, используя цикл for:

 ${variable}=    Create Dictionary
FOR    ${i}    IN RANGE    10    # how many random string you need
    ${value}         Generate Random String    8
    Set To Dictionary    ${variable}     first_name_${i}    ${value}
END
 

Вы можете поместить ее в ключевое слово и передать необходимое количество пар ключ: значение.