Подход для автоматизации локализованного веб-приложения в Selenium с использованием Java-привязок - PullRequest
2 голосов
/ 30 сентября 2011

Я автоматизирую тестовые случаи для веб-приложения, использующего селен 2.0 и Java. Мое приложение поддерживает несколько языков. В некоторых тестовых случаях требуется, чтобы я проверял текст, отображаемый в пользовательском интерфейсе, например сообщения об успехе / ошибке и т. Д. Я использую файл свойств для хранения любого текста, на который я ссылаюсь в своих тестах из пользовательского интерфейса, в настоящее время только на английском языке. Например, есть locale_english.properties (см. Ниже), который содержит все ссылки на английском языке. Я собираюсь иметь несколько файлов свойств, таких как это, для разных локалей, таких как locale_chinese.properties, locale_french.properties и так далее. Для локалей, отличных от английского, соответствующий им файл свойств будет иметь символы UTF-8 (например, \ u30ed), представляющие собственные символы (см. Ниже). Поэтому, если я хочу протестировать, скажем, китайский пользовательский интерфейс, я бы загрузил «locale_chinese.properties» вместо «locale_english.properties». Я собираюсь преобразовать нативные символы для неанглийской локали, используя, возможно, native2ascii из JDK или каким-либо другим способом. Я проверил, что Selenium API хорошо работает с символами UTF-8 для неанглийских локалей

---locale_english.properties------
user.login.error= Please verify username/password

---locale_chinese.properties------
user.login.error= \u30ed\u30ef\u30eg\u30eh\u30ed

and so on.

Проблема в том, что мои locale_english.properties растут и выходят из-под контроля. Становится трудно управлять одним файлом свойств для одной локали, не говоря уже о нескольких локалях. Есть ли лучший способ обработки локализации в Java, особенно в таких ситуациях, как я?

Спасибо!

Ответы [ 3 ]

1 голос
/ 03 сентября 2013

Это как Я решил вопрос для тех, кому это интересно.

1 голос
/ 30 сентября 2011

Вы правы, что существует проблема с управлением файлами, но вы также правы, что это лучший подход.Некоторые вещи просто сложны: - (

Selenium (по крайней мере, Selenium RC API) действительно поддерживает ввод и вывод Unicode, у нас есть много тестов, которые вводят и подтверждают символы кириллицы и простых китайских из C #. Так как JavaВ основе строк лежит Unicode (так же, как в C #), я думаю, вы можете просто создать файл в редакторе, удобном для UTF-8, таком как Notepad ++, читать их прямо в строки и использовать их непосредственно в Selenium API.

0 голосов
/ 03 сентября 2013

база данных будет работать лучше по многим причинам, таким как рост, центральное расположение, храниться вне приложения и может редактироваться и поддерживаться вне приложения.Мы использовали таблицу со столбцами:

id (int), автоинкремент id_text - этот и другие столбцы являются varchar ... за исключением даты и времени для последних 2-х переводов перевода.Идентификатор - это краткое английское описание текста - например, «hello» или «error1msg», ключ вашей карты.

В Java была функция для получения текста для определенного текста ... исвойство уровня приложения - язык по умолчанию (обычно en, но хорошо, чтобы его можно было настраивать)

Функция будет сканировать уже загруженную хэш-карту для запрашиваемого языка - скажем "ch"

Если дляна этом языке мы будем возвращать перевод языка по умолчанию, и если он не был основателем, то мы будем возвращать "[" + id "]", чтобы тестировщик узнал, что чего-то не хватает в базе данных - можно перейти на веб-экран для редактирования таблицы перевода и добавить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...