Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

ScriptJava Framework - примеры



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


ScriptJava Framework - примеры
2012-02-05 16:38
ScriptJava Framework - $$().$$().$$().$$().$$()...

ScriptJava Framework

* работа с элементами
* работа с ajax
* динамическая подгрузка скриптов
* динамическое создание элементов
* динамическая подгрузка css стилей
* отправка файлов через ajax
* отправка формы через ajax
* работа с cookie
* работа с событиями
* работа с браузером, экраном, числами, элементами

Подробный мануал на русском
http://scriptjava.net/

Поддерживает все современные браузеры!

Краткое описание функций

$$() - получение доступа к элементам
$$a() - работа с ajax
$$c() - работа с cookie
$$e() - работа с событиями
$$f() - отправка форм через ajax
$$i() - динамическое подключение скриптов стилей и создание элементов
$$r() - работа с событием window.onload
$$s() - набор полезных функций по работе с экраном, мышью, браузером, элементами, числами и т.д.


Примеры на scriptjava:

Отправка файла через AJAX

Вначале нужно подключить сам scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Для отправки файлов серверу есть такая форма

<form id="test_form" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
</form><br /><br />
<div id="status">Тут будет статус загрузки</div><br /><br />
<div onclick="SendFile();">Отправить файл через Ajax</div><br />


Пишем для него функцию отправки

<script type="text/javascript">
	function SendFile() {
	    $$f({
	        formid:'test_form',//id формы
	        url:'ajax.php',//адрес на серверный скрипт который будет принимать файл
	        onstart:function () {//действие при начале отправки файла на сервер
	            $$('status','начинаю отправку файла');
	        },
	        onsend:function () {//действие по окончании отправки файла на сервер
	            $$('status',$$('status').innerHTML+'<br />файл успешно загружен');
	        }
	    });
	}
</script>


Чтобы получить ответ от сервера, содержимое файла ajax.php может быть таким:

<?php
	    if($_FILES['upload_file']['size']>0) {
	        echo '
	            <script type="text/javascript">
	            var elm=parent.window.document.getElementById("status");
	            elm.innerHTML=elm.innerHTML+"<br />Получен файл '.$_FILES['upload_file']['name'].' размером '.$_FILES['upload_file']['size'].' байт";
	            </script>
	        ';
	    }
?>


Работа с cookies

Вначале нужно подключить сам scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Для проверки поддерживает и браузер кукисы можно использовать следующий код:

<script type="text/javascript">
	//проверяю поддержку cookie браузером
	if($$c.test()) {
	    alert('браузер поддерживает cookie');
	}
	else {
	    alert('браузер не поддерживает cookie');
	}
</script>


Вот так можно установить кукисы на 10 секунд

<script type="text/javascript">
	//устанавливаю cookie
	$$c.set('test', 'содержимое test', 10);
</script>


Вот так можно считать кукисы

<script type="text/javascript">
	//читаю cookie
	alert($$c.get('test'));
</script>


Для удаления установленных кукисов достаточно использовать такой код

<script type="text/javascript">
	//удаляю cookie
	$$c.erase('test');
</script>


Отправка формы через Ajax.

Вначале нужно подключить сам scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Допустим на странице сайта у нас есть форма

<form id="test_form" action="comment.php" method="post">
	    Имя: <input type="text" name="name" /><br />
	    Комментарий: <textarea name="comment"></textarea>
	</form><br />
<div id="result">Тут будет статус загрузки</div><br /><br />
<div onclick="SendForm();">Отправить форму через Ajax</div><br />


Ее можно отправить на сервер через AJAX с помощью кода

<script type="text/javascript">
	function SendForm() {
	    //отправка файла на сервер
	    $$f({
	        formid:'test_form',//id формы
	        url:'comment.php',//адрес на серверный скрипт, такой же как и в форме
	        onstart:function () {//действие при начале отправки
	            $$('result','начинаю отправку');//в элемент с id="result" выводим результат
	        },
	        onsend:function () {//действие по окончании отправки
	            $$('result',$$('result').innerHTML+'<br />комментарий успешно отправлен');//в элемент с id="result" выводим результат
	        }
	    });
	}
</script>


Чтобы получить ответ от сервера, содержимое файла comment.php может быть таким:

<?php
	if(isset($_POST['name'])) {
	    echo'
	        <script type="text/javascript">
	        var elm=parent.window.document.getElementById("result");
	        elm.innerHTML=elm.innerHTML+"<br />Получено имя '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['name'])))).' с текстом '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['comment'])))).' ";
	        </script>
	    ';
	}
?>


Динамическое подключение скриптов

Вначале нужно подключить сам scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Чтобы динамически подключить скрипт, а также после его загрузки выполнить из него код, нужно выпонить следующий код

<script type="text/javascript">
	function GetScript() {
	    //Подключаю внешний скрипт и запускаю из него метод
	    $$i({
	        create:'script',
	        attribute: {
	            'type':'text/javascript',
	            'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
	        },
	        insert:$$().body,
	        onready:function() {
	            modules.sound.start();//этот метод запускается уже из подключенного скрипта
	        }
	    });
	}
	GetScript();
</script>


Дописываю вышепоказанный код, теперь он будет запускаться сразу после загрузки сайта:

<script type="text/javascript">
	//выполнение кода только после загрузки документа
	$$r(function() {
	    //Подключаю внешний скрипт и запускаю из него метод
	    $$i({
	        create:'script',
	        attribute: {
	            'type':'text/javascript',
	            'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
	        },
	        insert:$$().body,
	        onready:function() {
	            modules.sound.start();//этот метод запускается уже из подключенного скрипта
	        }
	    });
	 
	});
</script>


Отправка GET, POST, HEAD запросов через AJAX

Вначале нужно подключить сам scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Поместим на сайт такой html код

<div id="result">Тут будет ответ от сервера</div><br /><br />
<div onclick="SendGet();">Отправить GET запрос через Ajax</div><br />
<div onclick="SendPost();">Отправить POST запрос через Ajax</div><br />
<div onclick="SendHead();">Отправить HEAD запрос через Ajax</div><br />


Пишем код

<script type="text/javascript">
	function SendGet() {
	    //отправляю GET запрос и получаю ответ
	    $$a({
	        type:'get',//тип запроса: get,post либо head
	        url:'ajax.php',//url адрес файла обработчика
	        data:{'q':'1'},//параметры запроса
	        response:'text',//тип возвращаемого ответа text либо xml
	        success:function (data) {//возвращаемый результат от сервера
	            $$('result',$$('result').innerHTML+'<br />'+data);
	        }
	    });
	}
	 
	function SendPost() {
	    //отправляю POST запрос и получаю ответ
	    $$a({
	        type:'post',//тип запроса: get,post либо head
	        url:'ajax.php',//url адрес файла обработчика
	        data:{'z':'1'},//параметры запроса
	        response:'text',//тип возвращаемого ответа text либо xml
	        success:function (data) {//возвращаемый результат от сервера
	            $$('result',$$('result').innerHTML+'<br />'+data);
	        }
	    });
	}
	 
	function SendHead() {
	    //отправляю HEAD запрос и получаю заголовок
	    $$a({
	        type:'head',//тип запроса: get,post либо head
	        url:'ajax.php',//url адрес файла обработчика
	        response:'text',//тип возвращаемого ответа text либо xml
	        success:function (data) {//возвращаемый результат от сервера
	            $$('result',$$('result').innerHTML+'<br />'+data);
	        }
	    });
	}
</script>


Содержимое файла ajax.php

<?php
	if(isset($_GET['q'])) {
	    header("Content-type: text/txt; charset=UTF-8");
	    if($_GET['q']=='1') {
	        echo 'запрос GET успешно обработан, q = 1';
	    }
	    else {
	        echo 'карявый GET запрос';
	    }
	}
	if(isset($_POST['z'])) {
	    header("Content-type: text/txt; charset=UTF-8");
	    if($_POST['z']=='1') {
	        echo 'запрос POST успешно обработан, z = 1';
	    }
	    else {
	        echo 'карявый POST запрос';
	    }
	}
?>



Остальные примеры смотрите на оф сайте фреймворка

Нужна помощь в автоматизации тестирования
2012-02-05 22:51
Добрый вечер!
Я два месяца работаю тестировщиком (manual testing). Передо мной стоит цель автоматизировать процесс. Как это делать никто не представляет и что конкретно от меня требуется понять сложно. Занимаемся тестированием банковского ПО. Используем Rational ClearQuest, ClearCase, RequisitePro. Для автоматизации планируется использовать TestManager и Robot. Вопрос в том насколько эти два продукта являются подходящими? (вообще ислозовать нужно только продукты Rational)
Вообще выполняется только функциональное тестирование (из-за отсутствия достаточного количества тестеров), в будущем хотелось бы еще делать нагрузочное и стрессовое. Тест-кейсы или тест-планы не пишутся. И еще более мне интересно с чего начинать автоматизацию: пробовать какие-то определенные операции автоматизировать, чтоб удобней было (к примеру заполнение каких-то формочек или создание документов, например), или сразу более крупные задачи?
Очень жду ваших советов.

Автоконфетка стартует через неделю
2012-02-06 09:33
Ровно через неделю начнется онлайн-конференция для специалистов по автоматизации тестирования Auto ConfeT&QA.

На этой конференции Вы услышите следующие доклады:

13 февраля 2012 года17:00Обходные пути в автоматизированом тестировании, Дмитрий Жарий17:40Гибкая система логирования результатов выполнения авто-тестов, Дмитрий Иржов18:20Разработка стратегии автоматизации, Алексей Баранцев14 февраля 2012 года17:00Sikuli – инструмент автоматизации GUI приложений, Игорь Хрол17:40Visual Studio, Coded UI и MS Test Manager: три в одном, Денис Колесников18:20Python приправы при готовке Selenium фреймворка на медленном огне, Михаил Поляруш19:00TDD c помощью функциональных тестов на WebDriver, Николай Алименков15 февраля 2012 года17:00Создание автоматизированного фреймворка на базе SmartBear TestComplete, Михаил Едемский17:40Можно ли писать автотесты на родном языке? Ольга Киселева18:20Автоматизируем тестирование Android приложений, Андрей ДзыняЕсли Вы хотите участвовать, но еще не зарегистрировались, то у Вас еще есть шанс.

Регистрируйтесь прямо сейчас.

А на подходе уже следующая конференция для тест-менеджеров и тест-лидов Chief ConfeT&QA (12-13-14 марта 2012 года).

Большая часть докладов этой конференции уже принята программным комитетом. Ознакомиться со списком принятых докладов можно здесь.



Читать дальше

Юля Нечаева: Команда, где каждый лидер
2012-02-06 09:38
Пока идет подготовка к очередной конференции серии SQA Days, мы продолжаем публиковать избранные выступления прошедшей, десятой конференции.

Сегодня мы предлагаем вам послушать рассказ Юли Нечаевой о том, как она практически с нуля поднимала тестирование в отдельно взятой компании. Причем речь вовсе не о том, как в компанию был внедрён какой-то "процесс" или "инструмент", а о том, как им удалось сделать так, чтобы людям было интересно работать, а компания получала максимальную пользу от их фантастической эффективности труда.

{iframe width="560" height="315" frameborder="0" allowfullscreen}http://www.youtube.com/embed/gaaztBf_Dso{/iframe}



Читать дальше

HP Quality Center 10
2012-02-06 11:10
После создания новой базы, из старой перенесли часть методик в Test Plan, в дефектах появились старые дефекты, с прошлого релиза без линков и заполненного поля: Detected in Cycle, Status = New, Статус дефекта и все остальные поля без изменений. Посмотрела в старой базе, там эти дефекты тоже не прилинкованы.
Подскажите, пожалуйста, откуда могли взяться?

Как сделать, чтобы скрипт ждал окно, и есои оно открывалось, закрывал
2012-02-06 11:18
В общем, пишу в тесткомплите скрипт, и нужно чтобы при открытии определённго окна оно закрывалось и продолжалось выполнение.
Способ 1
if Sys.Process('ISR').Window('#32770', 'Внимание', 1).exists then Sys.Process('ISR').Window('#32770', 'Внимание', 1).Window('Button', 'ОК', 1).click; 

Работает,но в этом случае скрипт ждёт окно 10 секунд, а если оно не появляется, выводит в лог ошибку.
Способ 2
if Sys.Process('ISR').WaitWindow('#32770', 'Внимание', 1000,1).exists then Sys.Process('ISR').Window('#32770', 'Внимание', 1).Window('Button', 'ОК', 1).click; 

Ждёт одну секунду, но не закрывает заданное окно в случае его появления.

Jira плагин для подсвечивания строки
2012-02-06 12:06
Всем здравствуйте !

Есть одна проблема: нужно в JIRA подключить highlight(подсветку) той строки, над которой находится курсор мыши. Это нужно, т.к. удобно видеть какой тикет выделен, а тикетов в проектах дофига и без подсветки сложно уловить какой сейчас смотрится )))
Ещё знаю что есть такая штука: когда открываем скриншот - чтобы он открывался не в новой вкладке, а в той же самой, но ввиде lighbox'а с кнопкой 'закрыть'. При этом мы остаёмся в открытом окне тикета - очень удобно.

Догадываюсь, что это делается при помощи плагинов к JIRA, но, к сожалению, не знаю что это за плагины.
Помогите пожалуйста, кто сталкивался ?

Скучно ли работать тестировщиком?
2012-02-06 13:10
Привет друзья. Я начинающий разработчик. 5 лет делал сайты на php+mysql в основном на разных cms. Год назад работал java программистом. Сам не пойму как устроился, видимо очень хотел, глаза сияли прям. И без опыта работы меня взяли в Москве на 60000р. Щастье мое длилось не долго, пару месяцев, когда они поняли кого взяли, то есть я посмотрел десяток курсов и ничего не делал. Соответственно, когда мне сказали на делай по технологии JEE я чуть со стула не упал. В общем как ни старался, учил все на ходу, но тестовое задание я провалил. После этого понял, что java не мое. Слишком правильная и замудренная что ли, хотя просторы у нее большие, и иногда чуть ли не слеза на глазах, когда хочется видить себя java программистом. Но видимо, нужно потратить ни один год на обучение, а кушать хочется уже сейчас. В общем, после этого я где-то пол года скитался, искал свой язык, что-то среднее между php и java. Все описывать не буду, в общем перепробовал множество. Из всего этого мне понравились 2 языка. Python и C#. C# очень похоже на java, но лучше подойдет для начинающего. Питон намного проще, после java он мне казался как html. Что приглянуло, он независим. Но пока я его отложил на полку. В общем занялся ДОт нет. Пошло очень хорошо, просто замечательно, после JAVA. В общем на данный момент я освоил(только язык) c# и java на хорошем уровне, чтобы пойти работать. 80% где-то. ну не знаю, прям чувствую что готов. И начал ездить по собеседованиям.

Первое было по java как ни странно, в общем сделал 4 задания по инету, не без помощи форумов. Приехал прошел тест. Потом в комнату где меня 2 мужика и тетка, можно сказать прям допрашивали. И когда я им сказал правду, что учился. Они в лицо мне отказали, и сказали мол еще поучись.

Второе C# начинающий уровень. Приехал нормально пообщался, но видимо не судьба. Либо не понравился, что из java перешел. В общем не знаюд. Третье вообще ужас, приехал в такую ж.. извиняюсь, когда все о себе рассказал, я просил всего 30000р копейки для меня. Мне сказали, за что вам вообще платить? за учебу? В общем, я развернулся, сказав, что у меня полно предложений и уехал. Они хотели, что я им платил. Это вообще смешно.

Если честно, реально еще есть 3 предложения. Но я уже честно не знаю. Мне нравится программировать, но в первую очередь я рассматриваю работу в it как хороший трамплин начать новую жизнь заграницей. Так как в России я еще пару лет точно не протяну. Так вот вопрос. Ребят, скажите. Не скучно ли вам работать тестировщиками? Не жалеете, что сделали такой выбор?

Я ничего не хочу сказать плохого про эту профессию, но мне кажется что она близка к программированию, и в моем случае найти работу и начать карьеру проще. Так как когда я разместил резюме, мне с предложениями работать тестировщиком звонили чаще, чем по разработке. Хотя я ничего не указывал о тестировании. Или бесплатный сэр только в мышеловке?

Вообще моя цель по жизни насчет работы такая, 1)легко устроится заграницей 2)найти красивый независимый язык, написать на нем крутой проект и чтобы потом никто не присосался,( если он взлетит к небесам как фейсбук) мол отсегивай, а то закроем. В общем выслушаю всю критику, можете смело писать все, что думаете по этому поводу. Я просто застрял, мне нужен сильный пинок. Спасибо

После применения Watir пропадают стили
2012-02-06 13:52
Здравствуйте. Подскажите, пожалуйста, кто сталкивался с подобной проблемой. Заполняю страницу регистрации (https://testeachersonline.com/register.html) при помощи теста, запускаемого через Watir. Запускаю файл с расширением rb через консоль, все формы заполняются, при переходе на страницу предпросмотра пропадают стили на странице (аттач). При прохождении теста вручную такого не происходит. В чем может быть проблема.

  • : testeacher_problem.png


Работа для специалистов по web, QA-тестированию
2012-02-06 14:47
Благотворительному фонду требуются специалисты для тестирования социальной сети помощи людям "happylives.ru" на безвозмездной основе. Тестирование проводится в системе багтрекер, на установленном сервере. Все кто желают получить опыт работы тестирования в крупном проекте и получить при необходимости рекомендацию на данном сайте или другой странице - прошу писать на адрес: vk1982@mail.ru . Особыми рекомендациями можем отмечать специалистов, умеющих работать по ТЗ или выполнять индивидуальные задания.

jenkins не запускает тесты
2012-02-06 16:27
Здравствуйте! я пытаюсь запустить тест через jenkins.
при запуске в консоли jenkins появляется такая ошибка:
[jmeter] Error in NonGUIDriver java.lang.NullPointerException


и это в самом начале. тест даже не запускается.

в jmeter.log вот такая информация:
2012/02/06 16:20:06 INFO  - jmeter.JMeter: Version 2.0.1 
2012/02/06 16:20:06 INFO  - jmeter.JMeter: java.version=1.6.0_22 
2012/02/06 16:20:06 INFO  - jmeter.JMeter: Loading file: /var/lib/jenkins/home/jobs/Perfomance_test/workspace/test/Test1.jmx 
2012/02/06 16:20:06 ERROR - jmeter.save.SaveService: Problem loading part of file org.apache.avalon.framework.configuration.ConfigurationException: No attribute named "class" is associated with the configuration element "testelement" at -
	at org.apache.avalon.framework.configuration.DefaultConfiguration.getAttribute(DefaultConfiguration.java:279)
	at org.apache.jmeter.save.SaveService.createTestElement(SaveService.java:966)
	at org.apache.jmeter.save.SaveService.generateNode(SaveService.java:1143)
	at org.apache.jmeter.save.SaveService.loadSubTree(SaveService.java:939)
	at org.apache.jmeter.JMeter.run(JMeter.java:507)
	at org.apache.jmeter.JMeter.startNonGui(JMeter.java:485)
	at org.apache.jmeter.JMeter.start(JMeter.java:284)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.jmeter.NewDriver.main(NewDriver.java:172)

2012/02/06 16:20:06 ERROR - jmeter.JMeter:  java.lang.NullPointerException
	at org.apache.jmeter.JMeter.convertSubTree(JMeter.java:579)
	at org.apache.jmeter.JMeter.run(JMeter.java:511)
	at org.apache.jmeter.JMeter.startNonGui(JMeter.java:485)
	at org.apache.jmeter.JMeter.start(JMeter.java:284)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.jmeter.NewDriver.main(NewDriver.java:172)


кто нибудь с таким встречался? подскажите пожалуйста, как это исправить?


© 2010 | Software-Testing.Ru


В избранное