Зачем программисту 1С инструменты тестирования Web-приложений?
09.01.17 23:16

?????? ??????? ????? ??????????, ?????????? ?????? ????? ?? ???????????. ? ????? ?????? ?? ????. ? ??? ?? ???? ?? ????, ?? ???????. ???????, ????????? ????? ???????. ??????...

?? ??? ?????, ? ???? ??????? ???????? ? ??????????? ????????? "?????????????", ?????????? ???????? ?????????. ?????????????, ? ?????, ?????? ??????????????, ??? ?? ??? ?????? ??????????? ?????????? ???????? ??????????? ????????. ?? ???, ??? ?????? ??????, ??????? ?? ?????????. ?? ??? ??????? ???? ?????????? ???????? ?????? ?????? ?? ???????????, ?? ?????? ??????????? ???????????? "?????? ?????? ???????". ? ?????? ???? ???? ????? 2 ????? ??????????, ? ?????? ??????? 30 ????? ? 5-7 ?????????. ????? ?? ????? ????? 300 ????? ????????? ??????.
????????? - 1?, ?????? ??? ???-??????, ?? ????? ?????????? ?????????? ? ??????? ???????? ????????? ??????? ????????? "????????????". ? ?????, ?? ???? ????????, ??????? ?????? ??? ??????? ??????? 15-20 ?????, ??????????? ???????? "?? ???", ?????? ?????????? ? ?.?. ???????????? ????????????? ? ??????? ??????????? ???? ??????, ??? ????????? ???????? ??? ???? ????????. ??? ????? ???? ??????????, ??? ??? ????? ?????????? ??? ???????? ?? ????, ? ???????????? ?????????, ? ?????? ? ?????????? ????? ????? ????? ??????. ??????? ???????? ?????????? ??? ???????? ? ?? ?????? ??? (??, ??, ?????? ???) ???? ??????, ????????? ???????? ????????? ? ??????? ????????? "???????".

???? ? 1: ???????? ? ???-?????????

???? ???? ? ???, ??? ????????? IExplorer application ??? COM ??????, ?????? ???????? ? ???? ??????? ??? ??????? ? ?? ???????? ???-?? ?????? ? ????-?? ????????. ?? ???? ????? ??????????????? ?? ???? ????, ????????? ??? ?????? ??????. KeyEvent ? MouseEvent ??????????? ? ?????? ????????? ?? ???????, ? ? ?????? IE ? ????? ?????????????. ? ?????, ???? click ??? ????? ???? ????????, ?? ??? ??????????? ???? ?????? ?????. ? ?????? ??????????? input.value = '125' ?? ???????, ????????? 1? ?? ??????? ??? ????????? ? ?? ??????? ????? ?? ???? ?? ??????. ?????? ?? ???? ????? ???? ????? ??????? ? ???, ??? ????????? html ???????? ??????????, ???????? ??????? ????? ?? ???????????? ??????????. ?? ?????? ????????????? ???? ?????? ????? ? ???????? ????, ??????? ?? ??????? ???? ? ??????? ?????? ???????? ?????? ? ????? ??????.

???? ? 2: ???????? ??????? ?????????? ????? WScript.Shell

?????????? ? ????????? ??? ???????. ????????? ???????? ?????-??, COM ?????? ????????, ??????? ?? ???? ? ??????? ?????? ?????? ? ?????????????? ????. ?????????? ???? ???????????, ??????? ???????????? ? ???? 1? ??????????? ??????? ??????? COM ?????? IE. ????? ? ???-?? ????? ?? ?????, ?? ???????? ?? ????. ? ?????, ???? ???? ????????.

???? ? 3: ? ??? ???? ??????????? ???????????? web-?????????? ????? ??????

??????????? ??? ?????, ????? ? ????? web-??????????. ??? ???? SPA (single page application) ?????????? ?? Angular, ? ?????? ?????? ???? ????????? ? ????? ??? ???? ?????? ??? "?? ???", ????? ????? ?????? ??? ???????????? ??????????. ????????? ??????? ?? ???? ?????? ???? ????, ???? ?? ?? ????????? ? ??????? ???????, ?? ? ??????? ????? ??????? ????. ? ??? ? ???????? ? ??? ????? ? ????? ????????? ?? ???? "? ??? ????? ????????????". ??? ??? ?????? ?????? ?????? 1? ?? ????? ? ??? ??????? (???) ? ????? ?????????? "selenium" (?????? ?? GitHub).
????????? ?? ???? ?????????? ?????? ????? ???? ????????, ????? ? ???? ? ??????? ???? ?????? ?? ????????? ? ????? ???? ???? ?? ????????. ? ?????, ? ??? ?????? ????????? ? ????? ??? ??? ??, ?? ????? "??????????? ????". ??? ?????? node.js, ? ??? ? ????????? npm, ?????????? selenium webdriver, ?????????? ???????? ?? Webstorm (?? ??? ?????? ???? ?? ???????? ??????? IDE) ? ?? ????? ???????? ????????? ????, ??????? ??????? ?????? ????????, ????????? ?? ???????? ??????????????? ???-??????? 1? ? ???????????????.

????????? Selenium Webdriver

????? ?????????, ? ?????? Javascript ??? ????? ??????? ??? ???? ???????. ???????. (??? ? ????????? ?????) ? Google  ? ???????????? ?? ?????? ??????, ?? ? ?????? ? JS ?????? ?????????? ????? ?? ?????????. ?? ? ??????????? ??????, ?????? ???? ?? ???? ???? ? ??????????.

??????????, ????? ?????????? ???? ????????? ??? ??????????? ????????? ????????? ?????:
  1. ?????????? selenium-webdriver (npm)
  2. ? ??????? "PATH" (??? ???) ???????? ??????????? ??? ??????? ??? ????????. Chrome ? Firefox ???????? ?????????. IE x86 ? ???????? ???? ?? ?????? ???????, ?? ??? ? IE x64 ????? ????????? ????? ? ??????. ?? ???? ??????? ????.
  3. ?????????? 'selenium-webdriver'

var wd = require('selenium-webdriver');

??? ???????? ????? ????? ????????? ??????? ? ??????????. ? ?? ???????? ? ???, ??? ?? ?????? ????? ? ?? ???????????? ?????????????? ? ???-???????? 1?.

??????????, ???????. ??? ???????

????????? ??? ?????????? ???? ?????? ????? ?? ?????????????? ?????????????? Excel ??????, ???? ?????? ?????????. ?????? ?????, ??? ??????? ??????????????? ????????? ????? ????????? ? ????? ???-???????. ?????? ????? ???????? ???????? ?????? ? ??????????? ??????? ? ??????? ????? ???????????? ????????, ???????????? http-??????? ? ?????? "???????????" ?? ???, ??????? ???? ??? ?????????? ? ??????????? ????????. ? ????? ???????? ??? ??????????  ? ????? ???????, ?? ??????? ????????? ????????? ? ???????????.

  • GET. localhost/test/hs/data/doc?user=name. ???????? ?????????? ???????????? ?? ????? ???????? ??????????? ??????. ? ????? ??????? JSON ????? ? ??????? ??????????? ???????? ??? ????????
  • POST. localhost/test/hs/data/doc?user=name&result=str. ?????????? ??? ????????? ??? ???????????? ? ????????? ??????????. ???? ????????? = error, ????? ? ???? ??????????? ?????? ???, ?? ??????? ???????????, ?? ??????? ??????.

????????? ??? ?????????????? ? ???????? ???????? ? Selenium ????????? ?? promise-?? (??? ???-?? ????? ???????????????????? ? 1?, ????????? ????? ???????? ???) ????? ??? ?????????? ??????.

??? ????????? ?????? ? ???-???????.

??????????? ?????? ? ???? ????? ??????? ??????????? ?????????: ???? ???, ???? ????????????, ???? ???????? ??????? ?????????. ????????? ?? ?? ????? ??????? ? ????????????, ??? ???? ???????? ??????? ?????. ??????????? ???????????? ???? ????????? ???????????? "??????? ??????" ??? ????????? ????? ???????????? ????????? ???????? ???. ? ?????, ?? ?????? ??? ?????? ????? ????????? ?????? ??? ??????? ??????????? (?? ???????????????), ? ????????? ??????? ????? ??????????? ?? ???????????? ?????????????. ?.?. ?????? ??? ???????? ???:


client.findElement(by.id('userName'))
    .sendKeys('username')
    .then(check_UserName)
    .then(function() {
        console.log('OK');
    })
    .catch(function() {
        console.log('error', '???????? ?? ????? userName');
    });

function check_UserName() {
    return new Promise(checkInputValue_promise);
    
    function checkInputValue_promise(resolve, reject) {
        var element = client.findElement(by.id('userName'));
        element.getAttribute('value')
            .then(function (attrText) {
                var i = attrText.trim();
                if (i !== 'username') {
                    reject(false);
                }
                else {
                    resolve(true);
                }
            });
    }
}

????? ???? ??????????? ?????????? ????????? ?????? ? ????????? ?????, ????? ?????????? ????? ??????? ? ??????? ? ?????????? ? ?????????? ?????????? ?????? ?? ??????.

????????? ?????? ?????? ???-???????:

  • ????? ???????????? ?????? ????????? ?????, ?? ????? ???? ??? input-? ??? ?????? ?????? ??? ??????????, ??????? ????? ??????? sednkeys-Enter ????? ????????? ??????????? ?????????? ????. ????? ????? ??? ??????? ???????? ????????? ???????: Form[N]_???????_i0, ??? N - ?????????? ????? ????????? ?????, ??????? - ??? ???? ??? ??? ?????? ? ????????????? (????? ??????? Profiler-??). i0 - ?????????? ??????, ??? ? ?????
  • ? ?????????? ???? ??? ?????? ??????. ???? ? ???, ??? ???? ????? ????????? ???????????????, ?? ?????? ????????? <div id='formN_container'> ?????????, ????????? ?????, ?? ????????? ??????? ? ? ???? ??????????? ??? ????????? ????????. ? ????? ?????????? ??????, ????? ? ????? ??? ?????????? ????? ????? ?????????????? ?????, ? ?????? ??????? ???????? ?? ????????? ?????? ?????. ??????? ??? ?? ??????. ????? ????? ????? ?????? ?? ?????????? ???? (??????? xpath) //div[@id='VW_page1formContent']/div[@class='IWebForm']. ?????????? ????????? div ? ????? ????? ??????. ? ????? "pageN" ????? ???????? ?? ????????? ????. ??????? ???? ?? ???????? ??????? ???????????????, ?? ????? ?????? ????????? ??????? ???????? ????????? ??????????.
  • ????? ????????? ??????????????, ?????? ??????? ????????? ????????? ??????? ?? ??????????? ? ?????????, ??? ????????????? ?????????? ???? Click ??? ?????????.
  • ?? ????????? ? ??????? ????????? ???? 1?, ??? ????? ?????? ?????????? ??????? ?? ????????? ????. ????????? ?????????????? ????????? ?????? ???????? ? ??????????????? ???????? ????? ??????. ??? ??? ????? ?? ?????? ? ????????? ???? Enter, ? ???? ?????????? ? ????????? ???????, ???? ???????? Click ?? ?????? ????????.
  • ??????? ???????? ? ?????? (??? ????????) ????? ????? ???? ? ????????? iFrame, ??????? ??? ????????? ? ???????????? ? ???? ???????????????? ???????? webdriver-?.

??????

???-?????? 1? ?????? ???????? ??? ????????????, ????? ???? ??????? ? ?????? ???????. ???????, ???? ??????? ? ???????? ?????? HTML ????????, ?? ?? ??????. ??? ??????????? ??????????? ?????????? (js, ????????????, ???-???????) ???? ??????????? ???????? ?? ???? ??????. ???? ??????? ??????? ??????????? ?????? ? ?????????????? ??????, ? ????????????, ???????????? ? ??????? ???????? ??? ??????? ??????????.

??? ????, ?????? ???? ??????????? ?????? ???? ??????? ?? ???????? 4 ??? ??????. ?? ???????? ?????? ????, ????? ????????????? ????, ???????????? ??????? catch-? ? ??????? ??????? ? ???????? ?????, ? ?? ?? ?????? ???? ?????? ?????? ??? ? ?????? ????????? ?????.

??????? ? ???????? ???? ?????? ?????????:

  • ??? ?? ?????????????? ????????????. ???????? ?????????????? ?????? ? ??????????;
  • ????????? ?? ????????? ???????? ?????????? ???? ? ????????? ?/??? ???????????. ???????? ????????? ? ?????????, ? ?????? ?????????? ?????? - ?????????? ???????, ???????? ?????? ? ????????? ???? ??????. ???? ??????????.
  • ?????? ?????????. ?? ????????. ??????????.
  • ???? ????????? ??????? ??????? ??????? ?????, ????? ?? ?????????? ???????????? ??????. ??????????.
  • ??????? ???? ?????? ???????? ? ????????? ??????? 'a' ????? ???????? ?????????. ?? ????????. ??????????.

?? ????? ????? ??????????? ????? ?????? ?? ???????, ????????? ? ?????????? ????????. ?? 2000 ?????????? ???? ????? 50 ????????? ?????. ??????????? ?? 20 ????? ??????? ? ???? ???????????? ????????, ????? ???? ??? ???? ?????????.

????? ??????? ????: ???-?????? 1? ??? ?????????? ???????????? ? ??????? ??????? ?????????. ?????????? ????????? ???? ???????????? ??? ???????????? ????????? ????? ???-???? ????????, ??? ??????? ????????? ?????????? ?????? ? ??????? ????????? ? ????????????. ? ??? ???-?????? - ??? ?????? ????????????? ???????. ????? ? ????? ???? ??????? ????????.

    ?????. ????????? IE x64

    ??????????? ??? ???????? ????????? ??????? ???, ?? ????????? ?????? ???????. ????? ??????, ? ???? IE 11, win 10, x64.

    1. ???????? ? PATH ??????? ??? x64 (???)
    2. ?????? ????????? ? ?????? (????????? ? ???? ???????)
    3. ??????????? ????????? ???????????? (???????? ???????? - ????????????). ??? ???? ??? ?????? "???????? ?????????? ?????"
    4. ???????? 64-? ????????? ???????? ??? ???????? (???????? ???????? - ?????????????). ?????? ??????? "???????? 64-????????? ???????? ??? ???????????? ??????????? ??????". ??????? ????????? ??? "???????? ??????????? ?????????? ?????" ????????

    ?? ???? ? ???????? ???, ????? ????? IE ?????? ???? ????? ??????????, ? ???????? ?????? ????? ????, ??? ? 100?????? ???????. ??: ???? ?? ???????, ??????? 32-? ?????? ???????, ?????????? 64-????????? ???????? (?.4) ? ???????? ???? ?????. ???????? ???? ??????? ?? ????????.

    ???????????

    ?? ???????? ????????? ??????, ??????? ????? ???????????????? ? ?????????? ??? ??????? ???????? chrome, ?????????????? node.js ? npm-?????? selenium-webdriver. ??????? ??? cmd
    
    node "???? ? ?????"/setdata_wsors.js

    ??? ?????? ?????????. ? ????? ???? ????????? ??????????????? ?????? ? ??????????. ???????? ??? ???????????? ??? ??? ????????? ???????, ????? ?????? ?? ?????? ? ????????? ?? ???? ????????.

    P.S. ????? ????? ?? ?????? ?? ????????? ?????. ????? ??????? ??? ???????? "???????" ?? ?????? ?????? ???? ??? ????????? ????????. ???? ???? ????? ?????????, ?????? ? Selenium ????? ???????? ?????????.

    P.P.S. ? ??????????? ??????, ??? ???????? ? ?????? ???????, ? ???????? ??? ????? ??????????. ?? ???????? ???? ??????, ??????? ????, ? ????? ???????? ? ??????????????. ?? ? ???? ???? ?????? ????? ? ????, ?????? ? ???????????, ???? ?? ????????? ?????????. ??? ?? ?????? ?????????? ?? ???????, ???? ????? ??????????? ?????? ????.

Read Full Article