Функция тестовых аккаунтов Merchant API позволяет тщательно тестировать интеграции в безопасной и изолированной среде перед их развертыванием в рабочей среде. Используя тестовые аккаунты в изолированной среде, вы можете экспериментировать с вызовами API, проверять код и выявлять потенциальные проблемы на ранних этапах разработки, не влияя на рабочие данные, не нарушая работу в реальном времени и не нарушая случайно правила Merchant Center.
Требования
Чтобы создавать и использовать тестовые аккаунты, необходимо выполнить следующие требования:
- Аккаунт Merchant Center. У вас должен быть аккаунт Merchant Center.
- Доступ к Merchant API. Вы должны быть зарегистрированным пользователем Merchant API.
Преимущества тестовых аккаунтов
У тестовых аккаунтов есть несколько важных преимуществ:
- Простая настройка. Настройка тестового аккаунта – это несложный процесс, который позволяет быстро начать тестирование функций и интеграций.
- Целостность и безопасность данных. Рабочие данные остаются защищенными, а риск нарушения правил в рабочих аккаунтах устраняется.
- Эффективность тестирования. Вы можете тестировать самые разные сценарии и пограничные случаи, не тратя ресурсы на поддержку параллельного рабочего аккаунта для тестирования.
- Мгновенная проверка предложений. Воспользуйтесь автоматическим исключением из требований по заявлению прав на главную страницу и ее подтверждению для тестовых аккаунтов, чтобы быстро проверить добавление предложений. В тестовых аккаунтах предложения одобряются по умолчанию.
- Реалистичная симуляция. Среда имитирует поведение рабочей среды для критически важных функций, таких как загрузка товаров и управление инвентарем, что обеспечивает надежность результатов тестирования.
- Более плавный переход на новые API. Тестовые аккаунты позволяют уверенно и без проблем перейти с Content API на Merchant API или с одной версии API на другую, поскольку вы можете параллельно проверять работу обеих версий.
Как создать тестовые аккаунты
Тестовые аккаунты создаются с помощью специального пользовательского метода в Merchant API.
Используйте метод accounts.createTestAccount:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}:createTestAccount
Content-Type: application/json
Authorization: Bearer {ACCESS_TOKEN}"
{
"account_name": "{TEST_ACCOUNT_NAME}",
"time_zone": {
"id": "America/Los_Angeles"
},
"language_code": "en-US"
}
Замените следующее:
ACCOUNT_ID– идентификатор Merchant Center.ACCESS_TOKEN– токен авторизации для вызова API.TEST_ACCOUNT_NAME– название тестового аккаунта. Рекомендуем использовать понятные названия, указывающие на то, что эти объекты предназначены для тестирования. Например, в название тестового аккаунта можно включить словоtest.
При создании тестового аккаунта необходимо заполнить следующие поля:
time_zone– часовой пояс, используемый в аккаунте для отчетов и отображения данных.language_code– код языка по стандарту BCP-47 для аккаунта, напримерen-US.
При успешном вызове возвращается ресурс Account, который включает уникальный идентификатор accountId и название ресурса нового тестового аккаунта:
{
"name": "accounts/{TEST_ACCOUNT_ID}",
"accountId": "{TEST_ACCOUNT_ID}",
"accountName": "{TEST_ACCOUNT_NAME}",
"adultContent": false,
"testAccount": true,
"timeZone": {
"id": "America/Los_Angeles"
},
"languageCode": "en-US"
}
Ниже приведены примеры кода, показывающие, как создать тестовый аккаунт.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.Account;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.CreateTestAccountRequest;
import com.google.type.TimeZone;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to create a new Merchant Center test account.
*
* <p>For more information refer to:
* https://developers.google.com/merchant/api/guides/accounts/test-accounts
*/
public class CreateTestAccountSample {
// Method to create a test account.
public static void createTestAccount(Config config, String newAccountName) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
AccountsServiceSettings accountsServiceSettings =
AccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
// The test account to be created.
Account account =
Account.newBuilder()
.setAccountName(newAccountName)
.setTimeZone(TimeZone.newBuilder().setId("Europe/Zurich"))
.setLanguageCode("en-US")
.build();
// Creates parent to identify where to insert the account.
String parent = String.format("accounts/%s", config.getAccountId());
// Create the request message.
CreateTestAccountRequest request =
CreateTestAccountRequest.newBuilder().setParent(parent).setAccount(account).build();
System.out.println("Sending Create Test Account request:");
Account response = accountsServiceClient.createTestAccount(request);
System.out.println("Created Test Account below:");
System.out.println(response);
} catch (Exception e) {
System.err.println("Error during test account creation:");
e.printStackTrace();
}
}
// Main method to run the sample.
public static void main(String[] args) throws Exception {
Config config = Config.load();
// This is the name of the new test account to be created.
String newAccountName = "MyNewTestShop";
createTestAccount(config, newAccountName);
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/:createTestAccount" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"account_name": "{TEST_ACCOUNT_NAME}",
"time_zone": {
"id": "America/Los_Angeles"
},
"language_code": "en-US"
}'
Расширенные тестовые аккаунты и дочерние аккаунты
Метод accounts.createTestAccount всегда создает отдельный тестовый аккаунт. Чтобы настроить иерархию расширенного аккаунта для тестирования, выполните следующие действия:
- Создайте отдельный тестовый аккаунт с помощью
accounts.createTestAccount. - Преобразуйте тестовый аккаунт в расширенный, следуя инструкциям из статьи Как перейти на расширенный аккаунт.
- Создайте дополнительные дочерние аккаунты в расширенном тестовом аккаунте, вызвав метод
accounts.createAndConfigureи указав расширенный тестовый аккаунт в качестве поставщикаaccountAggregation. Любой дочерний аккаунт, созданный в тестовом аккаунте поставщика, автоматически становится тестовым (testAccount: true).
Ограничения
Тестовые аккаунты предназначены для проверки функциональности и имеют определенные ограничения:
- Количество тестовых аккаунтов. В одном аккаунте Google можно создать не более пяти тестовых аккаунтов. Тестовые аккаунты учитываются в лимите на количество аккаунтов Merchant Center, которые можно связать с одним аккаунтом Google.
- Интеграция с квотами Merchant API. С точки зрения квот API Merchant API обрабатывает тестовые аккаунты как рабочие. Для тестовых аккаунтов действуют те же квоты, что и для рабочих. Увеличить квоту для тестовых аккаунтов нельзя.
- Преобразование аккаунтов и расширенные аккаунты. Вы не можете преобразовать обычный (рабочий) аккаунт – будь то отдельный или расширенный – в тестовый аккаунт или преобразовать тестовый аккаунт в рабочий. Кроме того, вы не можете напрямую создать расширенный тестовый аккаунт с помощью
accounts.createTestAccount. Сначала создайте отдельный тестовый аккаунт, а затем преобразуйте его в расширенный аккаунт. - Отсутствие общедоступных данных. Данные, отправленные в тестовый аккаунт, никогда не будут опубликованы на платформах Google, например в Поиске или товарных объявлениях.
- Ограниченные конечные точки. Тестовые аккаунты нельзя использовать с некоторыми функциями, например:
- Ограничения на связывание. Тестовые аккаунты нельзя связывать с другими аккаунтами Google Рекламы или профилями компаний в Google.
- Не регистрируйте тестовые аккаунты. Регистрация тестовых аккаунтов запрещена.
Рекомендации
При использовании тестовых аккаунтов рекомендуем следовать приведенным ниже советам.
- Разработка в изолированной среде. Всегда проверяйте новые функции интеграции в тестовом аккаунте, прежде чем применять их в рабочей среде.
- Автоматизированное интеграционное тестирование. Используйте тестовые аккаунты как стабильную среду для автоматизированного регрессионного тестирования.
- Названия тестовых аккаунтов. Используйте
account_name, чтобы указать назначение каждого тестового аккаунта, например "Тестирование переноса" или "Тестовый аккаунт для интеграции".