Web测试中容易被忽略的Charset问题
??今天繼續(xù)進(jìn)行一個(gè)更綜合的腳本制作,錄制設(shè)置、進(jìn)行錄制、腳本修改,一切都輕車熟路,進(jìn)行得很順利。經(jīng)過近一個(gè)小時(shí)的對(duì)比和修改,OK,腳本大功告成,終于可以小試牛刀了,嘿嘿。
??? 運(yùn)行,replay log一切正常(竊喜,小樣,還不輕松搞定),看看服務(wù)器log,暈,一堆錯(cuò)誤,這在直接操作時(shí)是不會(huì)的,估計(jì)腳本有問題,replay log看來是信不過的了(因?yàn)槲覜]做另外的判斷處理)。找了監(jiān)控工具來查看請(qǐng)求和響應(yīng)到底是怎么回事。哦,NULL_POINT_ERROR,空指針錯(cuò)誤。沒辦法,慢慢排查咯。
??? 直接界面操作并監(jiān)控請(qǐng)求和響應(yīng),再用腳本回放一下,對(duì)比,奇怪,沒什么問題啊,所有的請(qǐng)求都很對(duì),但怎么偏偏返回就出錯(cuò)了呢?折騰了半天沒找出頭緒,郁悶!沒辦法,找開發(fā)的同事幫忙吧。debuging...一會(huì)同事告訴我,請(qǐng)求的參數(shù)在服務(wù)器的解析中有亂碼!shit,我在監(jiān)控工具中看到的明明是正常的啊!!!再次分析,終于發(fā)現(xiàn),原來http頭一點(diǎn)不同,被我忽略了,那就是charset。通過web_add_auto_header("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");在所有請(qǐng)求中自動(dòng)添加上charset,回放,哈哈,過了!我舉起了拳頭,如同奧運(yùn)會(huì)的世界冠軍奪冠的那一刻。
??? 但是,事實(shí)證明,通往偉大的成功之路充滿了坎坷,接著,我又受到了另一個(gè)打擊。腳本后半部分運(yùn)行中又出現(xiàn)了問題。比較奇怪的是這個(gè)方法請(qǐng)求前面都已經(jīng)運(yùn)行通過了,這次只是傳輸?shù)膮?shù)不同,結(jié)果就錯(cuò)誤了。這個(gè)就不再詳細(xì)描述解決過程了,問題就是這個(gè)portlet中有兩個(gè)報(bào)表,報(bào)表ID需要關(guān)聯(lián),結(jié)果前面的報(bào)表通過關(guān)聯(lián)獲取了正確的ID,然后執(zhí)行第二個(gè)報(bào)表,當(dāng)我再次刷新第一個(gè)報(bào)表的時(shí)候用的確是第二個(gè)報(bào)表的ID,這就導(dǎo)致了該錯(cuò)誤。唉,都是關(guān)聯(lián)惹得禍。
???
??? 總結(jié):
??? 1、如果你自己沒有進(jìn)行錯(cuò)誤判斷,那么LR replaylog是信不過,因?yàn)槌薍TTP級(jí)別的錯(cuò)誤,服務(wù)器內(nèi)部報(bào)錯(cuò)測(cè)試工具是無法發(fā)現(xiàn)的,最好自己處理。
??? 2、關(guān)注charset,或者說是HTTP Header的問題,這通常都會(huì)被我們所忽視。當(dāng)你發(fā)現(xiàn)你的測(cè)試腳本的請(qǐng)求都很正常,但無法得到正確的響應(yīng)時(shí),請(qǐng)留意這一點(diǎn)。在LoadRunner HTTP協(xié)議中幾個(gè)有用的選項(xiàng)一文中描述了錄制設(shè)置方法。
??? 3、確保你很清楚被測(cè)產(chǎn)品的客戶端與服務(wù)器如何交互的,并保持清晰的思路,最好在腳本制作前先整理一下你的思路,確保不會(huì)象我一樣的糊涂。:)
轉(zhuǎn)載于:https://www.cnblogs.com/pent/archive/2007/08/31/877355.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Web测试中容易被忽略的Charset问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么样的人适合自学编程?你以为你自学难是
- 下一篇: 多环境设计