Ответы пользователя по тегу Автоматизация
  • Как "совместить" работу selenium webdriver и pyTest, чтобы написать автотест для каких-то действий на сайте?

    dummyman
    @dummyman
    диссидент-схизматик
    Не работал с селениумом, но много работал с каспером.
    Должно быть, принципы работы одинаковы.
    Как делаю в каспере?
    Возьмем базовый пример.

    var casper = require('casper').create();
    var links;
    
    function getLinks() {
    // Scrape the links from top-right nav of the website
        var links = document.querySelectorAll('ul.navigation li a');
        return Array.prototype.map.call(links, function (e) {
            return e.getAttribute('href')
        });
    }
    
    // Opens casperjs homepage
    casper.start('http://casperjs.org/');
    
    casper.then(function () {
        links = this.evaluate(getLinks);
    });
    
    casper.run(function () {
        for(var i in links) {
            console.log(links[i]);
        }
        casper.done();
    });


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

    Сразу весь скрипт посылать не стоит. Первой пачкой отправим
    var casper = require('casper').create();
    var links;
    
    function getLinks() {
    // Scrape the links from top-right nav of the website
        var links = document.querySelectorAll('ul.navigation li a');
        return Array.prototype.map.call(links, function (e) {
            return e.getAttribute('href')
        });
    }
    
    // Opens casperjs homepage
    casper.start('http://casperjs.org/');

    Через, например, секунду выполним
    casper.then(function () {
        links = this.evaluate(getLinks);
    });

    Через еще секунду проверим результат
    casper.run(function () {
        for(var i in links) {
            console.log(links[i]);
        }
    });


    Потом еще раз выполним:
    casper.thenOpen('http://phantomjs.org', function() {
        this.echo(this.getTitle());
    });
    
    casper.then(function () {
        links = this.evaluate(getLinks);
    });


    И еще раз проверим результат:
    casper.run(function () {
        for(var i in links) {
            console.log(links[i]);
        }
    });


    И в конце завершим работу каспера:
    casper.exit();

    В каспере также есть собственная система модульного тестирования.

    Не уверен, что с селениумом будет сложнее/проще, принципы везде одинаковы.
    См. документацию
    Ответ написан
    Комментировать
  • Стек технологий + Docker для реализации автоматического тестирования на физических машинах?

    dummyman
    @dummyman
    диссидент-схизматик
    Докер - один из способов развертки софта.
    Если речь идет не о тестировании непосредственно развертки/установки продукта, я бы использовал mock.
    Здесь есть несколько примеров использования https://fedoraproject.org/wiki/Using_Mock_to_test_...
    Хотя сейчас посмотрел, это только для RedHat-based ОС. =)
    Ответ написан