вторник, 17 мая 2011 г.

HotKeys: Ускорение ввода случайного текста при тестировании

clip_image002
Ручное тестирование и без того слишком медленное, а когда еще нужно постоянно заполнять случайными данными разные поля, то оно еще более замедляется. Примерами таких полей могут быть e-mail, имя пользователя.
А можно ли процесс заполнения таких полей ускорить?
Оказывается можно. И это не обязательно будет "copy-paste", тем более он нам не поможет, если нам необходимо заполнять всегда разными или случайными значениями. Но умные люди придумали "горячие клавиши", вот их то мы используем.
Итак идея ясна - повесим ввод текста на горячие клавиши, которые мы сами и зададим.
Реализовать это можно разными способами используя различные инструменты. Главное, чтобы была возможность задавать "горячие клавиши" и выводить текст.
Мы же рассмотрим один из вариантов реализации с использованием двух инструментов:
1. nnCron - с помощью него мы зададим горячие клавиши и действие, которое будет вызываться при их нажатии
2. AutoIt - этот инструмент поможет написать нам основной скрипт, который будет выводить текст.
Текст, которым автоматически будут заполняться наши поля - это какое-то случайное имя пользователя и какой-то случайный email.
Ниже листинг скрипта для программы вывода
#Include <array.au3>
$lenghtEmailArray = Random(1,10,1)
$lenghtDomenArray = Random(1,5,1)
; случайным образом определяем длину имя пользователя (его же мы и будем использовать в формировании e-mail) и доменного имени
$globalDomen = Random(0,1,1)
; эта переменная будет определять, какой глобальный домен будет использоваться. Она принимаем случайное значение 0 или 1
Dim $emailArray[1]
Dim $domenArray[1]
; определяем два динамических массива
Local $globalDomenArray[2] = [".ru", ".com"]
$emailArray[0] = $lenghtEmailArray
$domenArray[0] = $lenghtDomenArray
; кладем в первый элемент массива его длину. Отдаем дань AutoIt :)
GenerateString($lenghtEmailArray, $emailArray)
GenerateString($lenghtDomenArray, $domenArray)
; вызов функции генерации строк, после этого в массивах "лежат" готовые строки
SendString($lenghtEmailArray, $emailArray)
; вызов функции печати строки
If $CmdLine[0] > 0 And $CmdLine[1] = "e-mail" Then
; переменная $CmdLine - содержит параметры, которые мы передали скрипту при запуске. Если она не пустая и содержит параметр "email", то печатаем случайный e-mail
Send("@")
SendString($lenghtDomenArray, $domenArray)
Send($globalDomenArray[$globalDomen])
EndIf
; функция для генерации строки
Func GenerateString(ByRef $stopIndex, ByRef $array)
For $startIndex=1 To $stopIndex Step 1
_ArrayInsert($array,$startIndex,Chr(Random(Asc("a"), Asc("z"), 1)))
Next
EndFunc
; функция для вывода текста
Func SendString (ByRef $stopIndex, ByRef $array)
For $i=1 To $stopIndex Step 1
Send($array[$i])
Next
EndFunc
Вот такой несложный скрипт. Конечно, его можно усложнить, использовать например более сложный способ построения строки, ввести еще дополнительных параметров, которые вы будете передавать скрипту и т.д.
После написания скрипта его нужно скомпилировать.
Теперь в nnCron создаем две задачи:
  1. Задача для ввода e-mail по нажатию на определенные клавиши
  2. Задача для ввода login тоже по нажатию на определенные клавиши
Передаем параметр “email” в одном из скриптов и теперь при нажатии на эти сочетания у нас всегда новые e-mail и новый login.
P.S. Похожий подход был описан Trish Khoo в заметке Go faster! Linking data generation to hotkeys
P.S.S Также советую обратить внимание расширение для Chrome Magic Inputs Filler описание которого можно встретить на Хабре

Комментариев нет:

Отправить комментарий