Как запустить сценарий оболочки в Jmeter - Groovy

Код, который должен был работать на 100%, по-видимому, не сократил его для меня, я немного исправил этот пример, но нашел код, который не помогал, и проблемы с ним. поэтому я изменил его на несколько функций (чтобы сохранить запрос из списка из Mozilla все время и удалить систему кеша). Это было протестировано против набора из 1000 URL-адресов и, казалось, работало.

function domain($url)
{
    global $subtlds;
    $slds = "";
    $url = strtolower($url);

    $host = parse_url('http://'.$url,PHP_URL_HOST);

    preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
    foreach($subtlds as $sub){
        if (preg_match('/\.'.preg_quote($sub).'$/', $host, $xyz)){
            preg_match("/[^\.\/]+\.[^\.\/]+\.[^\.\/]+$/", $host, $matches);
        }
    }

    return @$matches[0];
}

function get_tlds() {
    $address = 'http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1';
    $content = file($address);
    foreach ($content as $num => $line) {
        $line = trim($line);
        if($line == '') continue;
        if(@substr($line[0], 0, 2) == '/') continue;
        $line = @preg_replace("/[^a-zA-Z0-9\.]/", '', $line);
        if($line == '') continue;  //$line = '.'.$line;
        if(@$line[0] == '.') $line = substr($line, 1);
        if(!strstr($line, '.')) continue;
        $subtlds[] = $line;
        //echo "{$num}: '{$line}'"; echo "<br>";
    }

    $subtlds = array_merge(array(
            'co.uk', 'me.uk', 'net.uk', 'org.uk', 'sch.uk', 'ac.uk', 
            'gov.uk', 'nhs.uk', 'police.uk', 'mod.uk', 'asn.au', 'com.au',
            'net.au', 'id.au', 'org.au', 'edu.au', 'gov.au', 'csiro.au'
        ), $subtlds);

    $subtlds = array_unique($subtlds);

    return $subtlds;    
}

Затем используйте его как

$subtlds = get_tlds();
echo domain('www.example.com') //outputs: example.com
echo domain('www.example.uk.com') //outputs: example.uk.com
echo domain('www.example.fr') //outputs: example.fr

Я знаю, что я должен был превратить это в класс, но не успели.

0
задан Bastian 13 July 2018 в 08:09
поделиться

1 ответ

Я могу думать о 3 причинах не возвращать ничего

  1. Вас просят добавить ваш 174.257.244.157 в известные хосты SSH
  2. Вас запрашивают пароль вашего пользователя jenkins для выполнения команды sudo , если это так, добавьте пользователя jenkins в группу sudo и настройте его чтобы запускал команды без запроса пароля
  3. Ваш /opt/mew/run_me.sh ничего не делает / ничего не предпринимает, попробуйте добавить что-то вроде echo "Starting..." к началу, чтобы иметь хотя бы некоторый вывод. Или замените его некоторой командой, которая, как гарантируется, будет работать как ls или whoami или date

. Чтобы получить больше информации о том, что происходит, вы можете изменить свой скрипт Groovy для использования класса ProcessBuilder :

new ProcessBuilder("c:/Program Files/PuTTY/plink.exe jenkins@174.257.244.157 -pw test!67  sudo /opt/mew/run_me.sh").inheritIO().start().text

Дополнительная информация: Apache Groovy - почему и как вы должны использовать его

0
ответ дан Dmitri T 17 August 2018 в 13:22
поделиться
  • 1
    Я дам ему попробовать, мне удалось наконец запустить его через OS Sampler, и он дает ответ от этого места. Так что, если он работает с OS Sampler, он должен работать и с JSR223 точно так же, я прав? – Bastian 14 July 2018 в 08:42
Другие вопросы по тегам:

Похожие вопросы: