ينشئ اختبار تحميل HTTP (S) طلبات متزامنة إلى عنوان URL واحد. يتحقق من عنوان URL المستهدف بحثا عن المحتوى المناسب والأخطاء والروابط المعطلة. وهو يدعم طلبات POST و GET وملفات تعريف الارتباط وإرسال النماذج والرؤوس المخصصة والمواقع الآمنة بكلمة مرور (تفويض HTTP / HTTPS الأساسي بالإضافة إلى آليات تفويض ملفات تعريف الارتباط / البرنامج النصي) وعتبات المهلة. يدعم اختبار تحميل HTTP (S) كلا من بروتوكولي IPv4 وIPv6 .

يمكنك تحويل معلمات طلب HTTP (S) إلى معلمات السياق لتمرير القيم، على سبيل المثال، استردادها من استجابة لطلب آخر داخل جهاز اختبار التحميل. يمكنك إعداد معلمات السياق لعنوان URL والرؤوس ومحتوى الطلب (لطرق النشر والإعداد والتصحيح) وإعداد البرامج النصية ونشرها. للحصول على التفاصيل، راجع كيفية استخدام معلمات السياق في طلبات HTTP (الطلبات).

عنوان URL

أدخل عنوان URL الذي ترغب في اختباره. يجب تشكيل العنوان تماما كما تستخدمه في المستعرض، مثل http://www.example.com. يجب عليك تضمين http:// أو https:// في بداية العنوان. يمكنك تضمين أي معلمات GET في نهاية عنوان URL.

عتبة التحقق من صحة الوقت (بالثواني)

أدخل عدد الثواني التي يجب أن تنتظر فيها المهمة ردا من صفحة الويب قبل إنهاء المهمة وإرجاع خطأ. إذا ترك هذا فارغا، فإن المهلة الافتراضية لمهمة ما هي 120 ثانية.

نوع الطلب

في الحقل “نوع الطلب”، يمكنك تحديد إحدى طرق HTTP الأكثر استخداما لإرسال طلبات المراقبة إلى صفحة ويب. إذا كنت بحاجة إلى إرسال حمولة مع طلبات HTTP، فقم بتوفيرها في الحقل المقابل (راجع فصل نص الطلب للحصول على التفاصيل). يمكن تحديد الحمولة وإرسالها مع جميع أنواع الطلبات باستثناء Trace (RFC2616).

عمليات إعادة توجيه عناوين URL

إذا تم تعيين الخيار متابعة عمليات إعادة التوجيه إلى نعم، فسيتبع النظام مسار عنوان URL الذي يتم إرساله مع استجابة 301 وسيعتبر كل عملية إعادة توجيه كطلب HTTP منفصل. يمكنك من اتباع سلسلة إعادة التوجيه الكاملة (جميع الروابط التي تتم إعادة توجيه الطلب من خلالها) في نتائج الاختبار ، بما في ذلك أوقات الاستجابة لكل من عنوان URL الأولي والردود اللاحقة.

نوصي بتنشيط خيار متابعة عمليات إعادة التوجيه إذا كنت بحاجة إلى اختبار ليس فقط عنوان URL الأولي، ولكن أيضا جميع عناوين URL في السلسلة. على سبيل المثال، قد يكون من المفيد إجراء فحص شهادة SSL لكل عنوان URL في سلسلة إعادة توجيه.

في الحالات التي تريد فيها اختبار عنوان URL أولي فقط، قم بتعطيل الخيار متابعة عمليات إعادة التوجيه .

لاحظ أنه يتم تعيين حد إعادة توجيه افتراضي عند 10 عمليات إعادة توجيه. إذا كنت تريد أن ينفذ النظام عددا معينا من عمليات إعادة التوجيه (أقل من 10)، فيمكنك تحديد عدد عناوين URL التي تريد اختبارها في سلسلة إعادة التوجيه في الحقل إعداد البرنامج النصي :

string url;
url = "http://wtatour.com/";
currentTask.TaskMaxRedirectAttempts = N;

حيث N هو عدد مواقع إعادة التوجيه التي نريد متابعتها. لمتابعة عدم وجود عمليات إعادة توجيه، ما عليك سوى تعيين عدد مواقع إعادة التوجيه إلى 0.

التحقق من صحة المحتوى

تستخدم الكلمات الرئيسية للتحقق من صحة المحتوى لضمان تحميل المحتوى المتوقع على صفحة ويب. في حقول الكلمات الرئيسية ، يمكنك تحديد كلمة أو عبارة واحدة أو أكثر ترغب في البحث عنها في محتوى صفحة الويب. إذا لم يتم العثور على الكلمات الرئيسية المتوقعة، فستعرض المهمة خطأ.

يمكنك إدخال سلاسل متعددة في حقول الكلمات الرئيسية. يمكن فصل القيم التي تدخلها بتعبيرات منطقية كما يلي:

{[("keyword1"&"keyword2")|!"keyword3"]}

أين:
{[ – بدء التعبير عن الكلمات الرئيسية;
]} – نهاية التعبير عن الكلمات الرئيسية؛
() – تجميع الأقواس؛
& – منطقي و;
| – منطقي أو؛
! – منطقي لا؛
“سلسلة” – كلمة رئيسية.

يجب أن يتضمن تعبير الكلمة الرئيسية الناجح أقواس البداية والنهاية على النحو التالي:

{["keyword"]}

المصادقة الأساسية

يستخدم نظام المصادقة الأساسية للسماح للمستخدمين بالوصول إلى المحتوى على بعض مواقع الويب. بمجرد تقديم بيانات اعتماد تسجيل الدخول ، سيتم تمريرها مع رأس الطلب إلى خادم الويب.

  • اسم المستخدم: يحتوي على اسم مستخدم لمصادقة الوصول الأساسية أو الخلاصة HTTP/S.
  • كلمة مرور المستخدم: تحتوي على كلمة مرور لمصادقة الوصول الأساسية أو الخلاصة ل HTTP/S.

لا تخلط بين المصادقة الأساسية وأنظمة المصادقة الأخرى مثل مصادقة الحامل التي تتضمن الرموز المميزة لحاملها وOAuth 2.0 التي تستخدم رموز الوصول.

اقرأ المقالات حول اسم المستخدم وكلمة المرور للمصادقة الأساسية ومراقبة واجهات برمجة التطبيقات المستندة إلى OAuth 2.0 لمزيد من المعلومات.

رؤوس

يتيح الخيار إضافة أي رؤوس مخصصة إضافية. على سبيل المثال، يمكنك تحديد نوع MIME للبيانات المرسلة مع الطلب في رأس نوع المحتوى:

Content-Type: text/html

إذا لم يتم تحديد رأس نوع المحتوى للطلب، إرسال الطلب مع تطبيق نوع المحتوى الافتراضي /x-www-form-urlencoded.

The default User-Agent header is set to:

User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) DMBrowser/2.1 (SV)

However, the user-agent string can be replaced with any other string. To do this, add a custom header with the name “user-agent” and the specific value needed.

خيارات DNS

تتيح ميزة خيارات DNS للمستخدمين اختيار كيفية إجراء طلبات خادم اسم المجال (DNS) أثناء مهمة المراقبة. في القسم مضيفو DNS المخصصون ، حدد تعيينات مخصصة لعناوين IP لأسماء المضيفين. قد يكون من المفيد تحميل اختبار مواقع الويب الخاصة بك أثناء الترحيل. وبالتالي يمكنك اختبار موقع الويب الخاص بك على خادم جديد بينما يستمر جميع المستخدمين في استخدامه على عنوان IP مألوف.

امثله:

192.168.107.246 example.com user.example.com userauth.example.com tools.example.com
192.168.107.246 example.com
192.168.107.246 user.example.com
192.168.107.246 userauth.example.com

لاحظ أن الخيار غير مدعوم من قبل وكلاء LoadView في الموقع. للعثور على إرشادات مفصلة حول كيفية إعداد مضيفات DNS مخصصة للعامل في الموقع، تفضل بزيارة مقالة كيفية إعداد مضيفات DNS المخصصة لاختبار التحميل باستخدام عامل في الموقع من قاعدة المعارف الخاصة بنا.

نشر البيانات (وضع، تصحيح)

يسمح لك Dotcom-Monitor بإرسال الحمولات في طلبات HTTP (S) (باستثناء طلبات التتبع). يمكن إرسال المحتوى الموجود داخل نص طلب HTTP كبيانات “خام” (JSON وXML وما إلى ذلك) أو كمجموعة ثابتة لقيمة الاسم (بيانات النموذج).

للعمل مع مجموعة أسماء قيم، يمكنك تشغيل وضع الإدخال التفصيلي باستخدام المبدل التفصيلي الموجود أعلى القسم وتوفير أسماء معلمات الطلب وقيمها في الحقل المقابل.

لإرسال بيانات “خام” مع الطلب، مثل كائن JSON، أدخل حمولة JSON في حقل الإدخال. يمكنك أيضا تغيير نص الطلب ديناميكيا. على سبيل المثال، إذا كنت بحاجة إلى إرسال التاريخ والوقت الحاليين كجزء من طلب POST أو تمرير معرف الجلسة الحالي في حمولة JSON إلى خادم بعيد. يتيح Dotcom-Monitor تغيير حمولة طلب HTTP ديناميكيا باستخدام بناء جملة Razor وأقنعة البيانات.

  • مثل. نص JSON الديناميكي لطلبات نشر HTTP

    لفهم كيفية عمل نص JSON الديناميكي بشكل أفضل في طلب HTTP ، دعنا نلقي نظرة على المثال التالي. لنفترض أننا بحاجة إلى تقديم طلب على موقع ويب وأن معاملة التقديم تتضمن ثلاث خطوات أساسية يتم تنفيذها بالتتابع:

    1. تسجيل الدخول
    2. تسجيل الوصول
    3. تقديم الطلب

    لإعداد اختبار مع تنفيذ هذه الخطوات بالتتابع، نحتاج إلى إنشاء ثلاث مهام HTTP داخل جهاز مراقبة واحد (أو اختبار تحميل، إذا كان اختبار الحمل يحدث).

    لنفترض أننا بحاجة إلى إرسال الوقت الحالي والمعرف الفريد العمومي الفريد في JSON مع طلب HTTP لتسجيل الوصول باستخدام التطبيق. أيضا ، لتقديم طلب ، يلزم معرف جلسة المستخدم الذي تم إنشاؤه عند تسجيل الدخول ووقت الطلب بواسطة التطبيق.

    لتنفيذ هذا الاختبار ، نحتاج أولا إلى تكوين طلب تسجيل دخول باستخدام معلمات المصادقة الأساسية على خادم ويب تطبيق الويب. بعد ذلك ، نحتاج إلى تكوين طلب HTTP لتمرير وقت تسجيل الوصول الفعلي والمعرف الفريد العمومي الفريد إلى جانب نص JSON. على سبيل المثال، سندخل السلسلة التالية باستخدام بناء جملة Razor في نص JSON:

    { "CheckInTime": "@Model["CurrentTime"]", "GenGuid": "@Model["Guid"]" }

    حيث يشير @Model[“اسم المعلمة”<] إلى اسم> معلمة سياق ضروري في تعبير Razor.

    يجب أن نعلن عن معلمات السياق ونحدد كيفية معالجة بيانات النشر في حقل إعداد البرنامج النصي:

    context.Guid = Guid.NewGuid().ToString(); // uniq random string
    context.CurrentTime = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd\Thh:mm:ss") + ".0Z"; // get current time in UTC
    ProcessPostDataByRazor(currentTask); // the call to process the Post Data content with the Razor engine

    ستبدو نتيجة طلب HTTP مشابهة لهذا:

    03:15:23
    POST http://www.dotcom-monitor.com/CheckIn
    { "CheckInTime": "2021-03-30T08:15:22.0Z", "GenGuid": "5c5e3d23-66fd-49d0-bd57-62c516aea7e7" }

    في الخطوة التالية ، نحتاج إلى تكوين طلب HTTP لإرسال طلب. من أجل القيام بذلك ، سنقوم بتمرير الوقت الحالي للطلب ومعرف الجلسة ، إلى جانب رقم تعريف طراز العنصر ، في نص JSON إلى نقطة النهاية المستهدفة. راجع نص JSON لهذا الطلب أدناه:

    { "OrderTime": "@Model["OrderTime"]",   "VIEWSTATE": "@Model["Session"]",  "ModelID": "2128506" }

    لتمرير قيمة متغير معرف الجلسة الحالي ، نحتاج إلى استرداده من صفحة تسجيل الدخول ، التي يتم استدعاؤها في خطوة تسجيل الدخول الأولى ، باستخدام طريقة عرض الحالة. يمكن ترميزه في البرنامج النصي للإعداد. بالإضافة إلى ذلك ، لمحاكاة وقت تفكير المستخدم الحقيقي ، سنقوم بتعيين متغير وقت الطلب مع إزاحة مدتها ثلاث دقائق. لذلك، سيحتوي الحقل “إعداد البرنامج النصي” على السلاسل التالية:

    context.OrderTime = DateTime.Now.AddMinutes(3).ToUniversalTime().ToString("yyyy-MM-dd\Thh:mm:ss") + ".0Z"; // order time + 3 min
    context.Session = (Tasks["Login"] as Http).body["//INPUT[@ID='__VIEWSTATE']", "VALUE"]; // track state value from Login page 
    ProcessPostDataByRazor(currentTask);

    سيبدو طلب HTTP الناتج مشابها لهذا:

    03:15:45
    POST http://www.dotcom-monitor.com/Order
    { "OrderTime": "2021-03-30T08:18:45.0Z", "VIEWSTATE": "<Server Generated ViewState>", "ModelID": "2128506" }
                        

لمعرفة كيفية تكوين طلب HTTP باستخدام حمولة متغيرة ديناميكيا، راجع كيفية تغيير الحمولة الصافية ديناميكيا في طلب HTTP.

إعداد البرنامج النصي والبرنامج النصي اللاحق

يمكن أن تحتوي الحقول على رمز C # ، والذي يمكن استخدامه لبيانات POST أو GET أو URL محددة أو للتحقق من صحة الرؤوس المخصصة أو نشرها. يرجى الاطلاع على مقالة استخدام إعداد البرنامج النصي ونشر البرنامج النصي أو الاتصال بالدعم الفني للحصول على مزيد من التفاصيل حول الاستخدام.

بمجرد إنشاء جهاز اختبار التحميل ، ستتم مطالبتك بتكوين سيناريو اختبار التحميل.