Конфигурация автоматического тестирования мобильного приложения appium+python и примеры тестового кода
Конфигурация автоматического тестирования мобильного приложения appium+python и примеры тестового кода

Предполагается, что переменные среды adb (Android) настроены и установлен Python.

1. Установите сервер Appium.

Скачать адрес  :    http://appium.io/

2. Установите клиент Appium и Selenium.

Введите pip install selenium в cmd

                      pip install Appium-Python-Client

Если возникают проблемы с повторной попыткой, используйте команду с источником pip, например:

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install Appium-Python-Client -i https://pypi.mirrors.ustc.edu.cn/simple/

3. Скрипт, Код должен включать поддержку appium настройки сервера, Вы можете добавлять/удалять элементы настройки в соответствии с фактическими потребностями. нравиться

Язык кода:python
кодКоличество запусков:0
копировать
# -*- coding: utf-8 -*-
Язык кода:python
кодКоличество запусков:0
копировать
from appium import webdriver
from time import sleep

CAPS = {
    "deviceName": " MEIZU_E3",
    "platformName": "Android",
    "platformVersion": "7.1.1",
    #'app' = 'E:/autotestingPro/app/UCliulanqi_701.apk'  #Укажите файл .apk. Если установлены appPackage и appActivity, этот элемент будет игнорироваться.
    "appPackage": " com.meizu.flyme.flymebbs",
    "appActivity": ".ui.LoadingActivity",
    #"noReset": True,  
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', CAPS)
sleep(3)

4. Открыть приложение server, Установите хост на 127.0.0.1, установите порт на 4723, Запустить сервер

5. Подключите телефон, установите приложение и запустите скрипт.。Полный тестовый сценарийнравиться Следующий пример(использоватьUnittest):

Язык кода:python
кодКоличество запусков:0
копировать
# coding: utf-8
import unittest
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

desired_caps = {'platformName': 'Android',
                'platformVersion': '5.1.1',
                'deviceName': 'MEIZU_E3',     #Имя устройства взято из adb devices
                "appPackage": " com.meizu.flyme.flymebbs",
                "appActivity": ".ui.LoadingActivity",}
appium_server = 'http://localhost:4723/wd/hub'


class LearnAppiumTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Remote(appium_server, desired_caps)

    def tearDown(self):
        self.driver.quit()

    def test_01(self):
        text_view = self.driver.find_element_by_id("text_view")
        assert text_view.text == 'Hello World! Hello World!'  # Тест должен провалиться

    def test_02(self):
        wait = WebDriverWait(self.driver, 6)
        wait.until(EC.element_to_be_clickable((By.ID, 'button')))
        button = self.driver.find_element_by_id("button")
        button.click()

        wait = WebDriverWait(self.driver, 6)
        wait.until(EC.presence_of_element_located((By.ID, 'text_view')))
        text_view = self.driver.find_element_by_id("text_view")
        assert text_view.text == '3'  # Тест должен пройти

if __name__ == '__main__':
    unittest.main()
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода