Это может быть возможно, но это не простой способ. Я могу объяснить, как нечто подобное было сделано в нашем случае. Но это будет не так просто, как просто передать String
параметр внутри Appium
.
1) Для начала, Appium
строится вокруг WebDriver
API. Который включает в себя множество функций для работы с устройством. Тем не менее, макетирование и настройка базы данных для приложения - это что-то из другой кухни , которой внутри у нас явно нет. Более того, он очень специфичен для устройства, приложения и реализации. Чтобы настроить базу данных, вам необходимо внести некоторые изменения в клиенте, чтобы сделать возможным сборку определенного типа.
class WorkingDBHelper {
private lateinit var db: DataBase
fun createDb() {
val context = ApplicationProvider
.getApplicationContext<Context>()
if (Build.QA_REGRESSION) {
db = Room.databaseBuilder(context,
TestDatabase.class, "dev/tests/database/*.db")
} else {
// ......
}
}
// .....
}
Эти изменения могут быть очень простыми и настроены для определенных типов сборки. Скажите типы регрессии QA, как вы видите выше. Это изменение безопасно (потому что для конкретной сборки) и теперь дает возможность прошивать БД внутри приложения. Примечание . Приведенный выше пример использования Room
в качестве решения ORM для клиента. Но это может быть согласовано с каждой БД.
2) Как только ваш клиент теперь может работать с внедренными внутри файлами БД. Все, что вам нужно, это реализовать функцию с толканием вашей конкретной БД. Это можно сделать очень легко (например, с Python и Appium
или даже с командами adb перед тестированием). И вы должны иметь предварительно созданные базы данных для каждого теста.
self.active_driver.push_file(
"dev/tests/database/*.db", self.get_database_remove_test())