Проектиране на откази с прокси за отстраняване на грешки
Избирайте HTTP редакции, закъснения и прекъснати обмени според поведението на клиента, което тестът през прокси трябва да провери.
Проксито за отстраняване на грешки е полезно, когато клиентът трябва да срещне отговор, който нормалният сървър рядко създава. Първо определете поведението на клиента, после изберете намесата, която създава това условие.
„Заявката се провали“ е твърде широк тестов случай. Валиден HTTP отговор с грешка, отговор, който никога не пристига, и връзка, прекъсната по средата на изтегляне, изискват различни неща от приложението.
| Случай | Поведение за проверка |
|---|---|
| Пълен HTTP отговор с грешка | Дали клиентът чете статуса и прилага предвидената политика за грешки |
| Забавен отговор | Дали потребителят може да отмени и дали времето за изчакване важи на предвидения етап |
| Неочаквано поле в заглавката или тялото | Дали анализът и проверката се провалят ясно |
| Прекъснат обмен | Дали непълните данни остават различими от завършен резултат |
Използвайте намеса на правилния слой
Charles предоставя точки на прекъсване, които спират заявка или отговор преди препращане. Прихванатото съобщение може да се разгледа и редактира, пропусне или прекъсне. Инструментът Rewrite прилага повтарящи се промени към съответстващи заглавки, URL адреси или тела. Ограничаването на скоростта управлява честотната лента и добавената латентност.
Тези контроли могат да проверят поведението на HTTP клиент, но ограничението на честотната лента не е точен модел на случайна загуба на IP пакети. Проксито може да буферира данни, да използва повторно връзки и да отвори отделна връзка нагоре по веригата. Изберете инструмент за влошаване на мрежата, когато нужното условие е именно под HTTP.
Пазете всеки случай разбираем
Съпоставяйте тясно предвидения хост и път. Започнете с нормален обмен, включете една промяна и запишете какво е променено. Ако повторен опит достигне втора крайна точка, решете дали същото правило трябва да засегне този опит. Иначе безусловното пренаписване може да превърне всеки път за възстановяване в първоначалния отказ.
При качване или операция, подобна на плащане, загубеният отговор не доказва, че сървърът е отхвърлил заявката. Включете тази двусмисленост в случая за повторение, вместо да твърдите, че всеки транспортен отказ е безопасен за повторение.
Прегледът или редактирането на HTTPS съдържание изисква клиентът да участва в настройката за TLS инспекция на проксито за отстраняване на грешки. Прокси, което пренася само CONNECT, вижда криптирани байтове на приложението. Използвайте изолирана тестова конфигурация и след това възстановете нейното маршрутизиране и настройки за доверие, за да описват по-късните наблюдения нормалния клиент.