测试php数字范围_你不知道的接口测试之拾遗
除了前面文章提到的測試之外,還有一些測試也是非常有必要進行的,當然他們執行的頻率沒有那么高。
01
sql注入
我們在login.php中是模擬的查詢數據庫,真正的查詢過程,很可能是由一下sql語句完成的:
select * from user where username='zhq' and pwd='123456'但是由于,我們的‘zhq’,‘123456’是由參數傳遞過來的一個變量,一些調皮的人就可以通過這兩個參數做文章了,比如估計把zhq傳遞成zhq'-- ,那么到了程序里面執行sql就變成了:
select * from user where username='zhq'-- ‘ and pwd='123456'那么只要是這個用戶名存在,就會返回數據!!!
對付這種漏洞,開發同學是有辦法的,比如使用功能完畢的框架,開啟相應的模塊等等,這里不多做說明了。
02
并發
我們先開發一個購物的接口,這個接口實現的功能是,每調用一次,商品的庫存就會減少1個單位。
我們使用一個data.txt文件代替數據庫,里面只防止一個數字,比如1000,然后編寫一個文件buy.php代碼如下:
以上代碼,就是讀取data.txt中的數字,做-1操作,我們正常調用結果如下:
{"code":200,"msg":"購買成功","result":{"num":999}}但是如果這個時候,突然有10臺電腦,在一剎那間同時訪問,這個結果如何呢,data.txt中數字還會是990嗎?下面我們來模擬這個操作:
把data.txt中的文字修改回1000
下載并且啟動jmeter軟件(百度一下如何安裝和配置)
在測試計劃中創建一個線程組,設置10個線程,5秒鐘啟動:
在線程中添加一個http請求
給線程組添加一個同步定時器,設置超時時間是10000毫秒:
給線程組添加一個一個查看結果樹的監聽器:
完成以上操作之后,我們將鼠標選中查看結果樹,然后點擊工具欄運行按鈕,查看最后一個請求返回的結果:
我們可以看到,最后返回的庫存數字竟然是993(這個數字有可能會變化),很明顯庫存并沒有按照我們的預期減少10個單位,變成990 !!!!
我們來強行解釋一波這個錯誤是怎樣發生的:
當一個用戶來購買商品的時候,老板還沒有做減庫存處理(-1的操作),來了第二個人,加塞進來,這個時候老板告訴他的自然是沒有更新過的庫存!
當然開發同學會有解決辦法,比如讓購物的顧客拍個隊,順序執行。
以上就是本篇的兩個方面,在實際測試過程中,測試的頻率要明顯低于功能,但卻很重要,當然開發同學也更會用心去做,所以出現錯誤的機會是很少的。
鏈接:https://www.jianshu.com/p/ee6b0d4d17bc
本文為51Testing經授權轉載,轉載文章所包含的文字來源于作者。如因內容或版權等問題,請聯系51Testing進行刪除
戳總結
以上是生活随笔為你收集整理的测试php数字范围_你不知道的接口测试之拾遗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 步步高vivo高通解锁工具_高通人工智能
- 下一篇: python debug工具_常用的 P