t.me/atinfo_chat Telegram группа по автоматизации тестирования

Operating System Library


(mmarch777) #1

Недавно начал изучать RobotFramework

Использование конструкции Run And Return RC    mkdir ${PATH} 1>sss.txt 2>stderr.txt    не позволяет создать

папку, содержащую в названии пробел (ОС Windows).

варианты  ${PATH}   “e:\\temp1\ new\\\”

                    ${PATH}  “e:/temp2${SPACE}new/”

                     ${PATH}   ‘e:/temp3${SPACE}new/’ не проходят.

 

Может кто подскажет, в чем проблема?

 

 

 


(Mykhailo Poliarush) #2

какую версию RF вы используете?

у меня слещующие комманды работают нормально

test
    Run And Return RC    mkdir "test test/test"
    Run And Return RC    mkdir " test/test"

(mmarch777) #3

RF 2.7.  Но дело не в нем. Ваш пример у меня тоже работает. Дело в том, что я использовал MS Office,

в результате получил двойные кавычки с кодами x93, x94 вместо x22. Установил RIDE. Надеюсь подобных проблем больше не будет.

Спасибо, Вы мне очень помогли.


(Mykhailo Poliarush) #4

обращайтесь, с радостью помогу и меня тешит тот факт, что этот инструмент начинают использовать.


(mmarch777) #5

Ещё вопрос.

*** Settings ***
Library           OperatingSystem

*** Variables ***
${ipath}          e:/
@{inn}

*** Test Cases ***
Read File
    ${in}    Get File    ${ipath}ddd.txt
     Log    ${in}
    @{inn}    Get File    ${ipath}dd.txt
     Log    @{inn}

 

Файл ddd.txt содержит одну строку и её видно в выводе.


Файл dd.txt содержит две строки и на выходе есть ошибка

Getting file 'e:\dd.txt'

  FAIL Cannot assign return values: Expected list-like object, got unicode instead.

Подскажите, если знаете, правильный ответ.

 


(Mykhailo Poliarush) #6

@{inn} - это список, зачем вы его используете? Поменяйте на ${inn} и у вас все должно заработать

    ${inn}    Get File    ${ipath}dd.txt
     Log    ${inn}


(mmarch777) #7

Спасибо, заработало!


(kom) #8

Начал изучать эту библиотеку, хотел выполнить

 run    c:/mspaint.exe

например или

start process    c:/mspaint.exe

 

По идее должна запуститься но программа. но каждый раз в логе:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

 


(Mykhailo Poliarush) #9

а какую версию робот фремворка вы используете?

потому, что вот такая конструкция у меня прекрасно работает.

 

*** Settings ***
Library           OperatingSystem
 
*** Test Case ***
test1
    Run    c:/Windows/System32/notepad.exe
 

(Mykhailo Poliarush) #10

можете также приложить или показать полный тест, который вы хотите выполнить?


(kom) #11

Все сработало, просто я по неопытности в execution profile оставил custom script, а надо было именно python

Спасибо:)


(kom) #12

В идеале я бы хотел, чтобы открывалась определенная программа и данные о времени ее открытия/закрытия/длительность сохранялись в sql БД/excel или просто в файл,

но не знаю пока как это сделать, думаю как-то с помощью Run And Return Rc And Output


(Mykhailo Poliarush) #13

проще будет сохранить в файл, что этого вам надо просто использовать метод Log, Get Time, Create File, Append To File

http://robotframework.googlecode.com/hg/doc/libraries/BuiltIn.html?r=2.7.1#Get Time

http://robotframework.googlecode.com/hg/doc/libraries/OperatingSystem.html?r=2.7.1#Append To File

ну если вы все таки хотите записывать в базу данных, то вы можете воспользоваться библиотекой DatabaseLibrary

http://franz-see.github.com/Robotframework-Database-Library/

http://franz-see.github.com/Robotframework-Database-Library/api/0.5/DatabaseLibrary.html


(kom) #14

Спасибо!

Попробую так


(kom) #15

Не получается запустить, хотел записать в sql таблицу определенные данные

run    C:/Testing/Install/sqlite/sqliteinsert.bat

start process C:/Testing/Install/sqlite/sqliteinsert.bat

В логе пишет pass, но фактически ничего не запускается и не добавляется

Можно ли так запускать bat-файлы?

Пробовал также прописать саму insert команду в тесте, тоже pass, но в итоге ничего не меняется


(Mykhailo Poliarush) #16

покажите текст всего вашего теста


(Mykhailo Poliarush) #17

я создал run.bat

c:/Windows/System32/notepad.exe

и создал test.txt

 

*** Settings ***
Library           OperatingSystem
 
*** Test Case ***
test1
    Run    run.bat
 
и у меня все прекрасно работает

(kom) #18

Уже запускается, спасибо.

 А как можно запускать что-то из командной строки при помощи python?

run    C:/sqlite/sqlite3 test "insert into films (title, date, start_time) values ('%theuserinput%', '%date:~-4,4%-%date:~-7,2%-%date:~0,2%', '%TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%');"

в bat файле такое запускается, но если запустить из robotframework, то не срабатывает


(Mykhailo Poliarush) #19

не понял вопроса, можно немного детальнее, что вы хотите сделать с помощью pyhton?

и лучше перенести такой вопрос в секцию по python http://automated-testing.info/forum/programmirovanie/python


(kom) #20

UPD: понял, надо было указывать полный путь к бд

теперь вот не пойму почему программы из папки program files не запускаются:

${mplayer}    set variable    C:/Program Files/Windows Media Player/mplayer2.exe

${fname}    Get Value From User    Enter filename

run     ${mplayer} ${fname}

а если скопировать mplayer2 в другую папку или в корень, и этот путь указать в ${mplayer}, то запускается