sikuli python java_automated тестирование опрос sikuli
sikuli python java_automated тестирование опрос sikuli

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Результаты исследования

SikuliДоступно дляwebиappавтоматизациитестсередина,Простота в эксплуатации,Код — это просто,Но процесс создания скриншота слишком громоздкий.,Требуемые изображения занимают много памяти.,И распознавание изображений сикули низкое,Необходимо делать точные скриншоты изображений, с которыми предстоит работать.

Что такое Сикули

Исследователи Массачусетского технологического института разработали новый язык графических сценариев Sikuli. Пользователям компьютеров необходимо иметь только самые базовые навыки программирования (например, уметь писать «привет, мир»). Ему не нужно писать строки кода, но он использует экран. Делайте снимки экрана и используйте вырезанные графические элементы для создания волшебных программ.

SikuliПринцип работы(кpythonНапример):

С помощью sikuli IDE вы можете создавать сценарии sikuli, которые включают исходный код Python и необходимые снимки экрана. Когда Sikuli IDE выполняет сценарий, он проходит через мост между парсером Python и библиотекой Java. Основная часть синтаксического анализа реализуется через библиотеку Java и делится на две части: java.awt.Robot используется для передачи. потоки событий клавиатуры и мыши передаются в соответствующее место; механизм C++ используется для поиска указанного изображения на экране. Координация различных частей наконец позволяет запустить сценарий сикули, как показано ниже:

Процесс автоматизированного тестирования сети с помощью сикули

1. Загрузите sikulixsetup

Адрес загрузки: https://launchpad.net/sikuli/+download

Скачать: sikulixsetup-1.1.0.jar

2.Установить сикули

l Импортируйте jar-пакет в проект;

l Запустите пакет jar в cmd. java -jar sikulixsetup-1.1.0.jar, появится следующий рисунок. После выбора соответствующей опции при запуске будет загружен sikulixapi.jar. В противном случае будет сообщено об ошибке: библиотеки для экспорта не найдены в указанном выше пути к классам: /sikulixlibs/mac/libs642.

l Выберите второй

l После запуска появится подсказка о веселье;

l Найдите в папке загруженный пакет sikulixapi.jar и импортируйте его в проект.

3. Напишите Java-код

Код выглядит следующим образом:

import org.sikuli.script.FindFailed;

import org.sikuli.script.Key;

import org.sikuli.script.Screen;

public class Sikulidemo123 {

public static void main(String[] args) throws FindFailed, InterruptedException {

Screen s=new Screen();

s.click(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\min1.png”);

s.doubleClick(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\firfoxpic.PNG”);

Thread.sleep(2000);

s.type(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\url1.png”, “******”);

s.type(Key.ENTER);

s.click(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\ningbologin.png”);

s.type(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\username.PNG”,”zhangguangwu”);

s.type(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\password.PNG”,”Abc123456″);

s.click(“D:\\eclipse-jee-mars-2-win32-x86_64\\Sikulidemo\\PNG\\loginbutton.PNG”);

System.out.println("Идеально...");

}

}

Автоматизация входа в систему, автор: seleiun

Разница между ними:

ü Selenium более точен, а у sikuli очень высокие требования к картинкам;

ü Код, написанный Selenium, можно использовать на любом компьютере, а код, написанный sikuli, можно использовать только на этом компьютере, поскольку распознавание изображений будет меняться из-за изменения разрешения, цвета фона и размера изображения;

ü Selenium работает медленно, в то время как код sikuli может быстро идентифицировать контент, который нужно щелкнуть и добавить;

ü Есть много элементов, которые невозможно получить в Selenium, например, xpath и операционная система Windows, но сикули может управлять ими, распознавая картинки.

Советы по написанию автоматических веб-тестов:

ü При написании автоматизированных сценариев, если вам нужно протестировать только небольшой фрагмент простой программы, вы можете использовать для ее написания sikuli. Если вам нужно протестировать сложную систему, вам следует использовать селен в качестве основного метода, а sikuli — в качестве дополнения ( при работе Windows);

ü В автоматизированных тестах, связанных с загрузкой файлов, изображений и т. д., удобнее использовать технологию распознавания изображений sikuli;

ü При использовании сикули для написания кода захваченные картинки должны избегать сходства и стараться максимально сузить область применения, чтобы при выполнении таких операций, как нажатие и заполнение, могли возникнуть ошибки позиционирования из-за чрезмерного объема;

ü Код, содержащий пакет sikuli jar, должен использоваться на локальном компьютере при запуске и не может работать на других компьютерах. Если он изменен, необходимо снова сделать снимок экрана работающего компьютера;

4. Запустите программу. Результат такой, как показано ниже:

Процесс автоматизированного тестирования на Android с помощью сикули

1. Импортируем полученный файл sikulixpai.jar в программу.

2. Импортируйте APK приложения для тестирования.

3. Установите Xiaoluobei Computer Control Master и свяжите его со своим мобильным телефоном. После управления компьютером страница будет выглядеть так, как показано ниже:

4. Напишите Java-код

Код выглядит следующим образом:

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.sikuli.script.FindFailed;

import org.sikuli.script.Screen;

public class SikuliTest {

@Test

public void addContact() throws FindFailed, InterruptedException{

//Получаем содержимое экрана рабочего стола компьютера

Screen s = new Screen();

//Путь хранения изображений

String imgpath=”D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\”;

//Нажмите, чтобы свернуть, чтобы свернуть затмение

s.click(“D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\min1.png”);

//Находим значок в мастере управления рабочим столом

s.find(imgpath+”Contect.png”);

s.click(imgpath+”Contect.png”);

Thread.sleep(1000);

s.click(imgpath+”AddContact.png”);

Thread.sleep(1000);

//Вводим имя контакта как какое-нибудь

s.type(imgpath+”Contactname.png”, “some”);

s.click(imgpath+”Contactemail.png”);

Thread.sleep(1000);

s.type(imgpath+”Contactemail.png”, “some@163.com”);

Thread.sleep(5000);

s.click(imgpath+”save.png”);

System.out.println(“App is done!”);

}

@After

public void tearDown() throws Exception {

//driver.quit();

}

}

Тестовый скрипт приложения для Android, написанный с использованием appium

import io.appium.java_client.AppiumDriver;

import io.appium.java_client.android.AndroidDriver;

import io.appium.java_client.android.AndroidElement;

import java.io.File;

import java.net.URL;

import java.util.List;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.openqa.selenium.By;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.remote.DesiredCapabilities;

public class ContactsTest {

private AppiumDriver driver;

@Before

//Открываем приложение и входим в основной интерфейс

public void setUp() throws Exception {

// set up appium

File classpathRoot = new File(System.getProperty(“user.dir”));

//путь к приложению

File appDir = new File(classpathRoot, “/apps”);

//пакет приложения

File app = new File(appDir, “ContactManager.apk”);

DesiredCapabilities capabilities = new DesiredCapabilities();

//Устанавливаем имя устройства устройства

capabilities.setCapability(“deviceName”,”4C3ETK1575017025″);

capabilities.setCapability(“platformVersion”, “4.4”);

capabilities.setCapability(“app”, app.getAbsolutePath());

capabilities.setCapability(“appPackage”, “com.example.android.contactmanager”);

capabilities.setCapability(“appActivity”, “.ContactManager”);

driver = new AndroidDriver<>(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);

System.out.println(“App is launched!”);

}

@Test

//Проверяем шаги по добавлению контакта

public void addContact(){

WebElement el = driver.findElement(By.name(“Add Contact”));

el.click();

List textFieldsList = driver.findElementsByClassName(“android.widget.EditText”);

textFieldsList.get(0).sendKeys(“Some Name”);

textFieldsList.get(2).sendKeys(“Some@example.com”);

driver.swipe(100, 500, 100, 100, 2);

driver.findElementByName(“Save”).click();

System.out.println(“App is done!”);

}

@After

public void tearDown() throws Exception {

driver.quit();

}

}

Разница между ними:

ü У Appium высокая точность, а у Sikuli очень высокие требования к картинкам;

ü Код, написанный Appium, можно использовать на любом компьютере, а код, написанный sikuli, можно использовать только на этом компьютере, поскольку распознавание изображений будет меняться из-за изменения разрешения, цвета фона и размера изображения;

ü Первоначальная настройка среды для Appium слишком громоздка, и при запуске сценария требуется множество предварительных шагов, чтобы открыть Appium. Достаточно просто установить Xiaoluobei Control Master;

ü Слишком много параметров, которые необходимо настроить на ранней стадии кода Appium, но Sikuli нужно только следовать шагам ежедневных ручных операций.

Советы по написанию автоматических тестов для приложений Android:

ü При написании сценариев автоматического тестирования для приложений Android, если вам нужно протестировать только небольшой фрагмент простой программы, вы можете использовать для ее написания sikuli. Если вам нужно протестировать сложную систему, используйте Appium;

ü При использовании сикули для написания кода захваченные картинки должны избегать сходства и стараться максимально сузить область применения, чтобы при выполнении таких операций, как нажатие и заполнение, могли возникнуть ошибки позиционирования из-за чрезмерного объема;

ü Код, содержащий пакет sikuli jar, должен использоваться на том же внешнем мобильном телефоне во время работы. Не допускается переход на другой мобильный телефон для работы. В случае его изменения необходимо сделать снимок экрана работающего мобильного телефона. снова;

ü Если вам нужно протестировать отдельный модуль мобильного приложения, вам следует использовать appium, который может автоматически определить, какое действие начать, исключая предыдущую серию шагов.

4. Бегите

Преимущества и недостатки Сикули

преимущество

1. Независимость от платформы

Он может реализовать любой тип тестирования пользовательского интерфейса (GUI), легко реализовать кроссплатформенное тестирование и решить проблемы тестирования совместимости браузера при веб-тестировании.

2. Высокая читаемость

Код легко читается, а использование графики для выражения логических связей становится более ярким и ярким, простым для понимания и простым в обслуживании.

3. Предоставьте пакет .jar.

Удобно построить крупномасштабную среду тестирования и реализовать взаимодополняемость различных инструментов тестирования.

4. Разработка вариантов использования и реализация программы могут быть разделены.

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

недостаток

1. Sikuli не поддерживает китайский язык, поэтому китайский язык нельзя использовать при программировании или сохранении путей! В противном случае при запуске будет сообщено об ошибке.

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

3. Сам Сикули еще не идеален (находится в стадии разработки и обновления) и в программе много ошибок. Пока неизвестно, сможет ли он продолжать развиваться.

4. Распознавайте только активные в данный момент значки (доступны только на текущем рабочем столе).

5. Предусмотрена организация вариантов использования, но на данный момент есть ошибки, а удобство еще не исследовано.

6. Если сделать скриншот, хранилище скриптов будет занимать много места.

7. Регулировка подобия требует ручной регулировки одну за другой, что является большой рабочей нагрузкой.

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/234223.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose