curliga testimine testib valet asja
Sisust ja selle ülevaatamisest
Selles artiklis
Loenduripäring, mis saabub ilma brauseri identiteedita, kirjutab kahte kaheteistkümnest kohast, mida loetud külastus tavaliselt puudutab. See vastab 200. See tagastab kehtiva loenduri pildi. Miski ei ütle kusagil, et kümme kaheteistkümnest jäeti vahele.
Milleks filter on ja mis see maksab
Siinsed loendurid eraldavad robotid inimestest ja eraldamine tehakse identiteedi järgi, mille klient endale annab. Markerite loend on lühike ja tahtlikult üheselt mõistetav ning curl/ on selles. Nii on ka tühi identiteet, põhjusel, et päring ilma kasutajaagendita pole brauser.
Mõlemad on õiged. Teenus ei eksi, kui käsitleb robotina päringut, mille saatis paljas curl — see ongi robot. Probleem on selles, et inimene, kes curli juhib, ei testi tavaliselt seda, kas robotituvastus töötab. Ta testib, kas loendamine töötab, ja on vaikselt tellinud roboti tee.
Mida nad saavad: päeva vaatamiste kokkuvõte kasvab ühe võrra, botiveerg kasvab ühe võrra ja see on kõik. Ühtegi unikaalse külastaja rida, seega midagi külastajate kohta. Ühtegi kirjet võrgusoleku loendis. Ei lehte, riiki, brauserit, operatsioonisüsteemi, seadet ega tundi. Süsteemi osad, mida keegi tegelikult kontrollida tahaks, on need, mis ei käivitunud.
Rikkel puudub sümptom
Sellel tasub peatuda. Test, mis ei mõõda midagi, annab tavaliselt endast märku: viga, tühi tulemus, null seal, kus peaks olema arv. Siin on vastus 200. Sisu on päris loenduri pilt, 3 361 baiti. Isegi pildi number kasvas, sest vaatamiste kokkuvõte on üks kahest asjast, mis juhtus.
Seega proov näeb välja nagu läbitud. Kõik selle järel — „loendamise tee töötab“, „uut veergu kirjutatakse“, „muudatus ei rikkunud midagi“ — on järeldus jooksust, mis jättis vahele enamiku koodist, mida pidi kasutama.
See juhtus selle kirjutamise ajal
Selle postituse taga oleva mõõtmise esimene versioon küsis /c/<number>. See ei ole loenduri pildi aadress; päris aadress kannab kujundust ja laiendit, /c/<number>-<design>.png. Päring tagastas 404.
Skript trükkis kolm korda: kirjutab 0 kohta 12-st. Mis on tõsi ja mis on ka täpselt see, kuidas näeb pealtnäha välja töötav botifilter. 404 oli väljundis, samas tabelis, ühe rea võrra nullidest kõrgemal. See jäi minutiks lugemata, sest nullid olid huvitav osa ja ühtisid ootusega.
See on sama viga mis see, millest see postitus räägib, ühe taseme võrra kõrgemal: mõõtmine, mis andis usutava vastuse põhjusel, mida keegi ei kontrollinud. See tuli välja ainult seetõttu, et skript luges ridu kahteteistkümnes tabelis, mitte ei usaldanud päringut — ebaõnnestunud päring ja filtreeritud päring näevad väljastpoolt identsed välja.
Mida selle asemel teha
Saatke brauseri identiteet. Üks lipp, -A päris kasutajaagendi stringiga, ja sama päring kirjutab kaheteistkümnest kümnesse kohta kahe asemel.
Ja lugege midagi teiselt poolt. Vastuskood ütleb, et päring jõudis kohale; see ei ütle midagi selle kohta, mida päring tegi. Kõige puhul, kus mõte on kõrvalmõjus — loendur, järjekord, logirida, rida kuskil — peab proov vaatama kõrvalmõju. Enne-ja-pärast arvud kõigis seotud tabelites võtsid siin kakskümmend rida ja muutsid segase tulemuse kaks korda selgeks: korra filtri puhul, korra 404 puhul.
Kaks kaheteistkümnest kohast jäid tühjaks ka brauseri identiteediga: botiveerg, õigesti, ja viitajate loend, mis ei salvestanud saadetud viitajat. Teist siin ei selgitata, sest seda ei ole veel taga aetud. See on esitatud, sest alternatiiv on avaldada tabel üheteist reaga ja nimetada seda kaheteistkümneks.