Всем привет, я Брат Шесть! Сегодня мы поговорим о том, как использовать большие модели искусственного интеллекта (например, GPT-3.5) для автоматического тестирования. Хотя это звучит высококлассно, это не так уж и удивительно. Следуйте за нами шаг за шагом, чтобы убедиться, что вы можете легко это сделать. сделайте это, научившись этому, вы избавите себя от проблем на работе.
Эта статья предназначена для функционального тестирования и новичков.,Здесь я постараюсь объяснить простым языком с примерами.,Постарайся быть понятым всеми,Рекомендуется всем сначаласобирать,Чтобы не найти его потом. 😎
01
Готовьтесь заранее и действуйте планомерно
Во-первых, нам нужно что-то подготовить, так же, как мы должны подготовить ингредиенты перед приготовлением.
Установить Python
Сначала вы должны установить Python на свой компьютер. Стоит ли говорить, на каком компьютере сейчас нет Python? Если вы все еще не знаете, как его установить, просто найдите «Руководство по установке Python» на Baidu и следуйте ему.
Установите библиотеку OpenAI.
Далее нам нужно установить библиотеку OpenAI, которая используется для вызова модели GPT-3.5. Откройте командную строку (называемую CMD в Windows, Терминал в Mac и Linux) и введите следующую команду:
pip install openai
Получить ключ API
Сначала нам нужно выяснить ключ API. Как будто тебе нужно взять с собой ключ, когда выходишь. Без этой вещи ты не сможешь войти.
api_key = "your_openai_api_key"
openai.api_key = api_key
Видите, эти две строки кода настраивают ваш ключ API. Просто замените «your_openai_api_key» на свой ключ и все.
02
Выдвигайте требования и уточняйте цели
Далее нам нужно сказать большой модели, что мы хотим сделать. Нам просто нужны тестовые примеры для входа пользователя. Должны быть как нормальные, так и нештатные ситуации, не больше, всего два варианта использования. Мы должны очень четко сформулировать наши требования, иначе большая модель не будет знать, как работать на нас.
prompt = «Создать тестовые примеры для пользователя Авторизоваться, которые включают только нормальные и нештатные ситуации. 2 Вариант использования статьи"
Просто скажите большой модели наши требования всего в одном предложении. Просто и понятно, без заморочек.
03
Построение сообщений: что приходит и уходит
Это похоже на общение с кем-то: вам приходится говорить взад и вперед. Мы должны рассказать большой модели, что она делает и что делаем мы. Таким образом, он может служить нам лучше.
messages = [
{"role": "system", "content": «Ты полезный помощник.»},
{"role": "user", "content": prompt}
]
Эти две строки кода создают список сообщений. Первое сообщение сообщает большой модели, что это полезный помощник, а второе сообщение — это подсказка, которую мы только что написали. Это все равно, что поздороваться с большой моделью и затем дать ей задание.
04
Вызовите API и получите всю огневую мощь
Этот шаг очень важен. Точно так же, как мы призываем кого-то что-то сделать, мы должны кому-то позвонить, прежде чем кто-то сможет нам ответить. И нам предстоит найти нужного человека — мощную модель GPT-3,5-турбо.
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=512
)
except Exception as e:
print(f"Error generating response: {e}")
exit(1)
Этот код вызывает большую модель GPT-3.5-турбо. Если что-то пойдет не так, будет выведено сообщение об ошибке и программа перестанет работать. Мы должны быть осторожны, чтобы не допустить, чтобы все пошло не так.
05
Извлеките варианты использования, например поиск сокровищ.
Нам откликнулась большая модель, и нам предстоит отобрать полезную информацию. Это все равно что искать сокровища в куче мусора. Нам нужно быть осторожными и не упустить хорошее.
generated_text = response.choices[0].message.content.strip()
test_cases = generated_text.split('\n')
Первая строка кода — извлечь содержимое ответа, предоставленное нам большой моделью, и удалить пробелы с обеих сторон. Второе предложение кода предназначено для разделения содержимого ответа на тестовые примеры в соответствии с символами новой строки. Теперь у нас есть куча тестовых случаев, как куча сокровищ.
06
Распечатайте варианты использования для краткого обзора
Нам нужно посмотреть, какие тестовые примеры генерирует для нас большая модель. Точно так же, как когда вы получаете посылку и вам нужно открыть ее, чтобы увидеть, что это такое. Нам нужно быстро осмотреться, чтобы мы чувствовали себя уверенно.
print("Generated Test Cases:")
for i, case in enumerate(test_cases):
print(f"Test Case {i+1}: {case}")
Этот код распечатывает тестовые примеры, созданные большой моделью. Напечатайте их один за другим, чтобы мы могли ясно видеть. Таким образом, мы можем узнать, хороши ли варианты использования, созданные для нас большой моделью, и полезны ли они.
07
Анализируйте варианты использования и вникайте в суть вещей
Тестовые примеры, сгенерированные для нас большой моделью, возможно, будет непросто использовать напрямую, и нам нужно в них разобраться. Это похоже на получение закодированного письма и необходимость его расшифровки. Нам нужно узнать всю ключевую информацию, содержащуюся в нем, прежде чем мы сможем беспрепятственно его использовать.
def parse_test_case(case):
parts = case.split(',')
username = parts[0].split(':')[1].strip()
password = parts[1].split(':')[1].strip()
expected_result = parts[2].split(':')[1].strip()
return username, password, expected_result
Эта функция используется для анализа тестовых случаев. Разделите тестовый пример на несколько частей по запятым, а затем разделите каждую часть на две части по двоеточиям, выберите полезную информацию и удалите пробелы с обеих сторон. Таким образом, мы получаем имя пользователя, пароль и ожидаемые результаты и можем лучше проводить автоматическое тестирование.
08
Распечатайте еще раз, чтобы подтвердить правильность
Нам нужно посмотреть, как выглядит разобранный тестовый пример. Это все равно, что пытаться разгадать, что написано в письме после того, как ты его взломал. Мы должны подтвердить, верен ли анализ и есть ли какие-либо проблемы.
parsed_test_cases = []
for i, case in enumerate(test_cases):
try:
username, password, expected_result = parse_test_case(case)
parsed_test_cases.append((username, password, expected_result))
print(f"Parsed Test Case {i+1}: Username={username}, Password={password}, Expected Result={expected_result}")
except Exception as e:
print(f"Error parsing test case {i+1}: {e}")
Этот код проходит тестовые примеры, созданные большой моделью, анализирует их один за другим, а затем печатает результаты анализа. Если что-то пойдет не так, выводится сообщение об ошибке. Таким образом, мы можем вовремя обнаружить и решить проблемы.
09
Вернитесь к варианту использования и приготовьтесь к бою
Наконец, нам нужно извлечь проанализированные тестовые примеры, чтобы мы могли использовать их где-нибудь еще. Точно так же, как вам приходится забирать вещи домой после покупки чего-то в супермаркете. Нам необходимо в любой момент подготовить эти варианты использования к автоматическому тестированию.
print("\nParsed Test Cases:")
for i, (username, password, expected_result) in enumerate(parsed_test_cases):
print(f"Test Case {i+1}: Username={username}, Password={password}, Expected Result={expected_result}")
Этот код снова распечатывает проанализированные тестовые примеры, чтобы мы могли видеть более четко. Таким образом, мы можем с уверенностью использовать эти варианты использования.
10
Резюме, последний штрих
После этого набора процессов мы можем четко контролировать большую модель ИИ. Сначала установите ключ API, затем сообщите большой модели, что мы хотим сделать, затем вызовите API, чтобы большая модель сгенерировала для нас тестовые примеры, затем извлеките сгенерированные тестовые примеры, распечатайте их, просмотрите, а затем проанализируйте. их, а затем распечатайте их. Посмотрите и, наконец, используйте проанализированные тестовые примеры.
Это так просто, просто следуйте за мной шаг за шагом, и вы сможете этому научиться.
После запуска вы можете получить тестовые случаи входа пользователя в систему, сгенерированные большой моделью, а также четко проанализировать эти тестовые примеры, чтобы использовать их в автоматизированном тестировании. Это работает очень хорошо!
Эффект следующий:
Generated Test Cases:
Test Case 1: Ниже приведены некоторые простые пользовательские тестовые случаи «Авторизоваться», включая нормальные ситуации и некоторые распространенные исключения:
1. Нормальная ситуация:
- Введите правильное имя пользователя и пароль.
- Должно быть разрешено успешно авторизоваться.
Пример кода (Python):
```python
def test_login_normal(self):
self.driver.get("https://example.com/login")
username = self.driver.find_element_by_name("username")
password = self.driver.find_element_by_name("password")
username.send_keys("test_user")
password.send_keys("test_password")
login_button = self.driver.find_element_by_css_selector(".login-button")
login_button.click()
# Убедитесь, что на странице «Авторизация» отображается правильное содержимое.
assert "Home" in self.driver.page_source, "Failed to navigate to Home page after successful login"
```
2. Исключение:
- Введите неверное имя пользователя или пароль.
- неуспешный Авторизоваться。
- Не удалось загрузить веб-страницу.
- Ошибка кода подтверждения.
Пример кода (Python):
```python
def test_login_failure(self):
self.driver.get("https://example.com/login")
username = self.driver.find_element_by_name("username")
password = self.driver.find_element_by_name("password")
username.send_keys("invalid_username")
password.send_keys("invalid_password")
login_button = self.driver.find_element_by_css_selector(".login-button")
login_button.click()
# Убедитесь, что вы не перенаправлены на страницу Авторизоваться.
assert self.driver.current_url != "https://example.com/login", "Failed to navigate to login page"
# Убедитесь, что нет запросов на код подтверждения.
assert not self.driver.find_elements_by_class_name("captcha"), "Captcha should be hidden"
# Убедитесь, что сообщения об ошибках не отображаются.
assert not self.driver.find_element_by_class_name("error-message").is_displayed(), "Error message should not be displayed"
# Убедитесь, что вы не переходите на страницу регистрации.
assert self.driver.current_url != "https://example.com/register", "Failed to navigate to register page"
def test_login_timeout(self):
self.driver.get("https://example.com/login")
username = self.driver.find_element_by_name("username")
password = self.driver.find_element_by_name("password")
username.send_keys("test_user")
password.send_keys("test_password")
login_button = self.driver.find_element_by_css_selector(".login-button
Error parsing test case 1: list index out of range
Осмелюсь сказать, что эта статья полна полезной информации. Если вы не знаете, как использовать большие модели ИИ для автоматического тестирования, быстро прочтите нашу статью, чтобы научиться. Это гарантированно сделает вас мастером автоматизированного тестирования и блистательным в работе.