Новая статья: Организация автоматизированного тестирования Qt GUI
#1
Отправлено 17 марта 2009 - 20:01
Читать статью...
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#2
Отправлено 21 сентября 2011 - 06:38
У меня небольшой вопрос к вам, когда-нибудь собирали сами Squish из исходников, а именно интересует опыт сборки под Solaris 10, Qt 4???
В библиотеку добавлена статья Евгения Россинского "Организация автоматизированного тестирования Qt GUI", посвященная инструменту, который интересует всех тестировщиков Qt-приложений, про который все слышали, но мало кто его видел -- froglogic Squish. Это наглядное и понятное введение в Squish Qt, с примерами кода, видеороликами, и -- обещанием продолжения.
Читать статью...
#3
Отправлено 21 сентября 2011 - 09:52
Но почему обращение именно к уважаемому администратору, давайте адресуем этот вопрос уважаемым участникам форума -- кто имеет опыт сборки squish?
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#4
Отправлено 22 сентября 2011 - 04:20
Чуть что, сразу косой :))Но почему обращение именно к уважаемому администратору?
Обучение для профессионалов: Школа тест-менеджеров | Школа тест-аналитиков | Школа Тестировщиков
Услуги для тест-менеджеров: Аутсорсинг тестирования | Поиск тестировщиков | Консалтинг
#5
Отправлено 14 октября 2011 - 10:10
Добрый день, глубоко уважаемый администратор!
У меня небольшой вопрос к вам, когда-нибудь собирали сами Squish из исходников, а именно интересует опыт сборки под Solaris 10, Qt 4???
В библиотеку добавлена статья Евгения Россинского "Организация автоматизированного тестирования Qt GUI", посвященная инструменту, который интересует всех тестировщиков Qt-приложений, про который все слышали, но мало кто его видел -- froglogic Squish. Это наглядное и понятное введение в Squish Qt, с примерами кода, видеороликами, и -- обещанием продолжения.
Читать статью...
Сам задал вопрос по сборке Squish'a и сам на него отвечаю. Пришлось практически месяц потратить, чтобы собраться под SunOs 5.10 (Generic_141445-09 i86pc i386 i86pc). Возможно кому-нибудь пригодиться.
p.s. почему я к уважаемому Администратору обратился, да потому что вы только и пишете про продукт (Squish) компании ForgLogic, другие про него как будто первый раз слышут.
1. конфигурился со следующими параметрами:
$ CXX=g++ ./configure --enable-all —with-qtdir=/usr/local/Trolltech/Qt-4.7.1-debug --disable-tcl
(т.е. поддержка JavaScript, Python, Perl)
2. при сборке написал, что не найдена библиотека (нет значит, сделаем линк и поехали далее)
$ cd /usr/local/lib
# ln -s libmpfr.so libmpfr.so.1
3. так же сборка не проходила из-за неправльного линка у перловой либы (удалили неправильный линк, был libperl.so -> ./libperl.so.1 заменили на см.ниже )
$ cd /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE
# ln -sf libperl.so.1 libperl.so
4. далее при сборке (./build) была следующая ошибка
Building /sintez/sintez/squish-4.1.1-qt-src/lib/libsquishinterpreter.so
Text relocation remains referenced
against symbol offset in file
.rodata1 0x6 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
my_cxt 0x13 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
...
...
...
...
Perl_sv_newmortal 0x61d /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
atoi 0x31 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
getenv 0x24 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
strcmp 0x7ac /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
ld: fatal: relocations remain against allocatable but non-writable sections
collect2: ld returned 1 exit status
g++ -shared -o /sintez/sintez/squish-4.1.1-qt-src/lib/libsquishinterpreter.so interpreter.o debugger.o generic.o scripttestcase.o testsettings.o initscript.o eventloopblock.o pyinterpreter.o pyobject.o pytest.o pytestdata.o pyutils.o pydebugger.o pyeventrecorder.o jsinterpreter.o jsdebugger.o jsobject.o jsutils.o jslibrary.o jstest.o jseventrecorder.o tinyxml.o tinyxmlerror.o tinyxmlparser.o tinystr.o plinterpreter.o pldebugger.o plobject.o plutils.o pleventrecorder.o settings.o surrogate.o filemonitor.o util.o guiconstants.o qtutil.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_debugger.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_eventloopblock.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_filemonitor.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_jslibrary.o -L/sintez/sintez/squish-4.1.1-qt-src/lib/ -lsquishtest -L/sintez/sintez/Qt-4.7.1-debug/lib -lQtGui -lQtCore -lQt3Support -lQtSql -lQtXml -lQtNetwork -lsquishobjectmodel -lfkit -lsocket -lsquishsw /usr/lib/libpython2.4.so -lresolv -lnsl -lrt -ldl -R /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -lm -lc -lkjs
Aborting build. Last command exited with status 1.
пришлось поправить Buld.conf
старое значение:
config["PERLLIBS"] = ["-R", "/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "", "/usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a", "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];
новое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];
После запустились билдиться
5. После шага 4 библиотека libsquishinterpreter.so собирается, но валится на сборке библиотеки _squishrunner. Ошибка следущего рода
Building /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtGui.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtGui.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtCore.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtCore.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQt3Support.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQt3Support.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtSql.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtSql.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtXml.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtXml.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtNetwork.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtNetwork.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
Undefined first referenced
symbol in file
boot_DynaLoader /sintez/sintez/squish-4.1.1-qt-src/lib//libsquishinterpreter.so
ld: fatal: Symbol referencing errors. No output written to /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner
collect2: ld returned 1 exit status
g++ -o /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner main.o runner.o remoteinspector.o remoteobject.o appstarter.o appinspector.o recorder.o spy.o serverinformant.o ipcsocket.o getopt.o surrogate.o settings.o util.o confparser.o qtutil.o dumpfilesupport.o lk3.o scriptlanguage.o jsscriptlanguage.o plscriptlanguage.o pythonscriptlanguage.o tclscriptlanguage.o tslscriptlanguage.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_runner.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_spy.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_appstarter.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_appinspector.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_recorder.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_serverinformant.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_ipcsocket.o -L/sintez/sintez/squish-4.1.1-qt-src/lib/ -lsquishserverlib -L/sintez/sintez/Qt-4.7.1-debug/lib -lQtGui -lQtCore -lfkit -lsocket -lnsl -lsquishinterpreter -lsquishtest -lQt3Support -lQtSql -lQtXml -lQtNetwork -lsquishobjectmodel -lsquishsw /usr/lib/libpython2.4.so -lresolv -lrt -ldl -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -lm -lc -lkjs
Aborting build. Last command exited with status 1.
т.е. при сборке не хватает DynaLoader который мы убрали из файла Build.conf. Изменяем опять config["PERLLIBS"]
старое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];
новое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE","/usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];
После запустились билдиться
И в конце увидили Build successfull
Но на это проблемы не закончились. Собираем Qt приложение в Debug mode и запускаем Squish. Пытаемся записать тест и тут опять проблемы. Не перехватывался Context с тестируемого приложения
долго и много диагностировали, запускали Squish в консольном режиме: отдельно в консольно режиме squishserver и squishrunner. После долгих мучений определили, что некорректно работает squishserver. В итоге причина оказалась бональной.
Удалили из переменной окружения LD_PRELOAD_32 и наступило счастье, НИРВАНА (саму команду см.ниже)
$ unset LD_PRELOAD_32
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных