Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

HP LoadRunner



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


HP LoadRunner
2013-07-23 12:41
Необходим специалист с опытом работы в HP LoadRunner. Описание работы:

Разработка скрипта из 12 бизнес процессов
Используемый протокол – web/html
Тестируемые решения – веб порталы (html, javascript, php)
Ориентировочно срок работы 2-3 недели

Требования к кандидату:
- Знание продукта HP LR
- Опыт создания высоконагруженных сценариев(10-20к пользователей, ролевые сценарии)
- Онлайн доступ – не менее 6 часов в день (включая выходные)
- анализ ошибок лоадраннера и их быстрое устранение
- анализ тестируемых данных и их правильное интерпретирование

Если Вы компетентны в этой работе, прошу откликнуться


Thucydides + java. Как запустить кросс-платформенные тесты?
2013-07-23 12:49
День добрый!

Есть набор автоматизированных тестов, написанных с использованием Thucydides+java.
Тесты прогоняются в FF, Chrome и IE с одной машины, теперь необходимо с этими же тестами выйти "в люди"
Т.е. запускать их в на разных OC и в вышеупомянутых браузерах разных версий.

В документации Thucydides и в их группе я не нашла, как это правильно делать.
Подскажите, плс, в какую сторону начинать искать, куда копать.
Тот же Jenkins - это из нужной мне оперы или нет?

Спасибо!

Проблема с динамическим параметром в LoadRunner
2013-07-23 14:50
Друзья, помогите кто сможет :)
Есть запрос:
silverlight_soap_request("StepName=ExecuteMultipleOperations",
"URL=http://{Server_IP}/clickschedulewebclient/SXP.asmx",
"SOAPEnvelope="
"<?xml version=\"1.0\" encoding=\"windows-1251\" standalone=\"no\"?>"
"<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">"
"<s:Header>"
"<h:OptionalParameters xmlns:h=\"http://www.clicksoftware.com/OptionalParameters\">"
"<h:CallerIdentity>MGTS\\{Login}</h:CallerIdentity>"
"</h:OptionalParameters>"
"</s:Header>"
"<s:Body xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
"<ExecuteMultipleOperations xmlns=\"http://www.clicksoftware.com\">"
"<Operations>"
"<Operation>"
"<Action>Update</Action>"
"<Object>"
"<Object xsi:type=\"Assignment\" xmlns=\"http://www.clicksoftware.com\">"
"<Key>11874946</Key>"
"<Revision>9</Revision>"
"<Task Key=\"{ID_Order}\" xsi:type=\"TaskReference\"></Task>"
"</Object>"
"</Object>"
"</Operation>"
"<Operation>"
"<Action>Update</Action>"
"<Object>"
"<Object xsi:type=\"Task\" xmlns=\"http://www.clicksoftware.com\">"
"<Key>{ID_Order}</Key>"
"<Revision>12</Revision>"
"<Status DisplayString=\"Íàçíà÷åíà\" Key=\"124147714\" xsi:type=\"TaskStatusReference\"></Status>"
"</Object>"
"</Object>"
"</Operation>"
"</Operations>"
"<OneTransaction>true</OneTransaction>"
"<ContinueOnError>false</ContinueOnError>"
"</ExecuteMultipleOperations>"
"</s:Body>"
"</s:Envelope>",
"Snapshot=t39.inf",
"ResponseParam=response",
LAST);

Из данной записи нужно вытащить динамиеский параметр: "<Key>11874946</Key>"
С помощью каких запросов это можно сделать? (web_reg_save_param не помогает)


XML запрос:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
- <s:Header>
- <h:OptionalParameters xmlns:h="http://www.clicksoftware.com/OptionalParameters">
<h:CallerIdentity>MGTS\SIsaev</h:CallerIdentity>
</h:OptionalParameters>
</s:Header>
- <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <GetTasks xmlns="http://www.clicksoftware.com">
- <KeySet>
<Key>44977279</Key>
</KeySet>
<EnableGroupOnTheFly>false</EnableGroupOnTheFly>
- <RequestedProperties>
<Item>Key</Item>
<Item>Revision</Item>
<Item>Status</Item>
</RequestedProperties>
<GetAssignments>true</GetAssignments>
- <AssignmentRequestedProperties>
<Item>Key</Item>
<Item>Revision</Item>
<Item>Task</Item>
</AssignmentRequestedProperties>
</GetTasks>
</s:Body>
</s:Envelope>

XML - ответ:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
- <s:Body>
- <GetTasksResponse xmlns="http://www.clicksoftware.com">
- <Tasks>
- <Task d3p1:type="Task" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance">
<Key>44977279</Key>
<Revision>13</Revision>
<Status Key="124155904" DisplayString="Запланирована">Запланирована</Status>
</Task>
</Tasks>
- <Assignments>
- <Assignment>
<Key>11874946</Key>
<Revision>10</Revision>
- <Task Key="44977279" DisplayString="">
<CallID />
<Number>0</Number>
</Task>
</Assignment>
</Assignments>
</GetTasksResponse>
</s:Body>
</s:Envelope>

Бесплатные тулы автоматизации тестирования мобильных приложений
2013-07-23 18:24
Доброго времени суток, коллеги.

Дали задание поискать информацию о бесплатных программах для автоматизации тестирования мобильных приложений и мобильных сайтов.
Не подскажете какие нибудь бесплатные тулы которыми вы пользовались. или встречали во время работы? Что можете порекомендовать?

С уважением.

C# Создание подключения по RDP
2013-07-23 19:05
Всем привет!
Занимаюсь тестирвоние распределенной системы и мне нужен совет знающего человека. У меня есть 2 компьютера, на одном запускаються авто-тесты, на втором работает определенная программа, с интерфейсом которой время от времени нужно взаимодействовать из авто-теста. Это взамоидействие осуществляеться через программу. Проблема в том, что Twin можетработать только в том случае, если на машине прошла авторизация, то есть пользователь зашел и интерфейс отрисовывается. Постойнно держать окно RDP открытым не слишком удобно. Возникла идея подключаться к машине через MSTSCLib, но компонент AxMsRdpClient5 сам по себе предназначен для работы с оконными формами System.Windows.Forms.
Возможно ли скрыть эту форму, что бы весь процесс происходил фоном?
 f.Visivle = false; 
не помогает.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using AxMSTSCLib;
using MSTSCLib;
using System.Runtime.InteropServices;



namespace AutoLogin
{
    public partial class Form1 : Form
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
             Form1 f = new Form1();
             
             Application.Run(f);
            Console.ReadLine();
 
        }

        private AxMSTSCLib.AxMsRdpClient5 rdpClient;
        public Form1()
        {
            rdpClient = new AxMSTSCLib.AxMsRdpClient5();
            ((ISupportInitialize)rdpClient).BeginInit();
            rdpClient.Enabled = true;
            rdpClient.Location = new System.Drawing.Point(0, 0); 
            rdpClient.Name = "MsRdpClient"; 
            rdpClient.Size = ClientSize; 
            rdpClient.TabIndex = 1; 
            rdpClient.Anchor = (AnchorStyles)(AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right); 
            Controls.Add(rdpClient); ((ISupportInitialize)rdpClient).EndInit();
            Form1_Load();
        }


        void axRemoteDesktop_OnDisconnected
            (object sender, IMsTscAxEvents_OnDisconnectedEvent e)
        {
            Application.Idle += ExitTimerEvent;
        }

        public void ExitTimerEvent(object source, EventArgs e)
        {
            Application.Idle -= ExitTimerEvent;
            if (rdpClient.Connected == 1)
            {
                rdpClient.Disconnect();
            }
            LogoffDisconnectedSessions();
            Close();
        }

        private Timer logoffTimer;
        private void Form1_Load()
        {
            LogoffDisconnectedSessions();

            String username = "user";
            String password = "pass";
            rdpClient.Server = "ыукмук";
            rdpClient.UserName = username;
            rdpClient.AdvancedSettings2.ClearTextPassword = password;
            rdpClient.Domain = "domen";
            rdpClient.FullScreen = false;
            rdpClient.AdvancedSettings2.RedirectDrives = false;
            rdpClient.AdvancedSettings2.RedirectPrinters = false;
            rdpClient.AdvancedSettings2.RedirectPorts = false;
            rdpClient.AdvancedSettings2.RedirectSmartCards = false;
            rdpClient.AdvancedSettings6.RedirectClipboard = false;
            rdpClient.AdvancedSettings6.MinutesToIdleTimeout = 1;
            rdpClient.Size = new System.Drawing.Size(1000, 1000);
            rdpClient.OnDisconnected += new
                AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler
                    (axRemoteDesktop_OnDisconnected);

            rdpClient.Connect();
            Console.WriteLine(rdpClient.Connected);
            logoffTimer = new Timer();
            logoffTimer.Tick += new EventHandler(LogoutTimerEvent);
            logoffTimer.Interval = 150000;
            logoffTimer.Start();
        }

        private void Form1_Close(object sender, FormClosedEventArgs e)
        {
            Application.Idle -= ExitTimerEvent;
            if (rdpClient.Connected == 1)
            {
                rdpClient.Disconnect();
            }
        }

        public void LogoutTimerEvent(object source, EventArgs e)
        {
            logoffTimer.Stop();
            rdpClient.Disconnect();
        }

        enum WTS_CONNECTSTATE_CLASS
        {
            WTSActive,
            WTSConnected,
            WTSConnectQuery,
            WTSShadow,
            WTSDisconnected,
            WTSIdle,
            WTSListen,
            WTSReset,
            WTSDown,
            WTSInit
        };

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        struct WTS_SESSION_INFO
        {
            public int SessionId;
            public string pWinStationName;
            public WTS_CONNECTSTATE_CLASS State;
        }

        [DllImport("wtsapi32.dll")]
        private static extern bool WTSLogoffSession(IntPtr hServer, int SessionId, bool bWait);
        private static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;

        [DllImport("wtsapi32.dll", CharSet = CharSet.Auto)]
        private static extern bool WTSEnumerateSessions(
                IntPtr hServer,
                [MarshalAs(UnmanagedType.U4)]
            int Reserved,
                [MarshalAs(UnmanagedType.U4)]
            int Version,
                ref IntPtr ppSessionInfo,
                [MarshalAs(UnmanagedType.U4)]
            ref int pCount);

        [DllImport("wtsapi32.dll")]
        private static extern void WTSFreeMemory(IntPtr pMemory);

        private void LogoffDisconnectedSessions()
        {
            IntPtr buffer = IntPtr.Zero;
            int count = 0;
            if (WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1,
                                     ref buffer, ref count))
            {
                WTS_SESSION_INFO sessionInfo = new WTS_SESSION_INFO();

                for (int index = 0; index < count; index++)
                {
                    sessionInfo = (WTS_SESSION_INFO)Marshal.PtrToStructure(
                       new IntPtr(buffer.ToInt32() +
                                  (Marshal.SizeOf(sessionInfo) * index)),
                       typeof(WTS_SESSION_INFO));

                    WTS_CONNECTSTATE_CLASS state = sessionInfo.State;
                    if (state == WTS_CONNECTSTATE_CLASS.WTSDisconnected)
                    {
                        WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE,
                                         sessionInfo.SessionId, true);
                    }
                }
            }
            WTSFreeMemory(buffer);
        }
    }
}


© 2010 | Software-Testing.Ru


В избранное