学习笔记二 Charles抓包及Python循环控制
一.jmeter操作mysql
1.首先在“測試計劃”的底部加入mysql的jar包,如果是oracle的數據庫,則需要導入oracle的jar包。
2.新建“線程組”,在“配置元件”下新建一個JDBC連接配置:
3.建好之后,給連接池起一個名字以便后續的sql操作調用,在這里是“mysql”,然后填入數據庫連接設置,Database URL格式如圖所示,數據庫的賬號和密碼,其他設置均可默認。
4.在線程組下新建一個JDBC請求:
5.填寫mysql語句:這里主要填入配置里連接池的變量名“mysql”,選擇查詢類型,如果只有select語句則選select statement,如果只有update和insert語句則用update statement,其他的情況均可選callable statement。
二.jmeter分布式
分布式是指當前的壓力機不滿足性能測試需求時,需要遠程一個或多個壓力機共同向服務器施壓測試的情況。
在分布式場景中,其中一臺為master機,其余為slaver。master負責操控其他的slaver。
需要滿足以下條件:
1.master和slaver機器上均裝有jmeter
2.master和slaver之間可以相互ping通,是同一個網段。
3.啟動salver的jmeter-server(支持window和linux)
4.在master上修改配置文件(bin目錄下的jmeter.properties文件),remote_hosts屬性,格式為ip:port,......,ip:port
默認端口號為1099,多個ip之間用逗號間隔。
5.在master機上運行jmeter:一般壓測的時候用no-gui模式即命令行模式。如果腳本有csv參數文件,需要將csv放置到每個slaver的jmeter的bin目錄下,腳本文件只需要放在master上,不需要發送到slaver上。
cd: jmeter的bin目錄
.jmeter -n -t dir/x.jmx -l dir/x.jtl
(-n代表非圖形界面啟動,-t代表腳本,-l代表結果)
三.charles
charles抓取https請求方式參考文章:
https://blog.csdn.net/lea__dongyang/article/details/73294751
1.charles攔截
設置斷點,以網頁www.cc-na.cn為例,在首頁設置斷點。
然后重新刷新www.cc-na.cn,charls會切換到斷點頁面,表示此時已經攔截到瀏覽器發送到服務器端的內容,我們可以在“Edit Request”頁面對攔截到的信息進行修改。
2.Charles修改攔截信息
比如,我們將請求信息改成后面拼接一個文章的路徑,則本該是發送獲取首頁的信息變成獲取649文章資源的地址。點擊底部的“Excute”。修改后的請求則會發送到服務器。瀏覽器頁面則會跳轉到改文章的地址,繞過首頁。
當然,攔截是雙向的,除了攔截到瀏覽器發送到服務器的數據,也可以攔截服務器返回到瀏覽器的數據。而且修改的攔截信息可以改各種參數。在此不做重復。
3.charles模擬弱網,在throttle settings里設置,將“enable throttle” 勾選上。
4.charls url映射
兩個服務器之間的映射(map remote),執行步驟為下組圖:
map內容如上所示,是將本來右服務器www.cc-na.cn下所有的接口(path可以指定接口,如果為*表示所有的接口)返回的數據轉換到由服務器www.nnzhp.cn返回,query可以指定參數。
由本地選擇文件返回(mpa local),執行步驟為下組圖:
maplocal是將本該由服務www.cc-na.cn返回的數據,改成指定由本地某個文件的數據返回,query可以指定參數。
map local與map remote的區別在于,后者是指定另一個服務器返回;前者指定返回的是某個本地文件的數據。
四.python
語言分為兩種:編譯型語言和解釋型語言。
計算機只能理解機器語言(二進制0和1),所以所有的語言只有經過翻譯才能被計算機識別,而翻譯的模式目前有兩種,一個就是編譯一個就是解釋。而編譯和解釋的區別在于他們的翻譯的時間不同。
編譯型語言是一開始都翻譯好了然后交給計算機執行;而解釋型語言是一邊運行一邊翻譯(如java),所以解釋型語言需要一個專門的解釋器(Java虛擬機)配合運行。所以解釋型語言運行效率低于編譯型語言。
1.條件判斷
語法為if..elif..elif..else
2.while循環
執行語句可以是單個語句或語句塊。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。
當判斷條件假false時,循環結束。
3.break
break是跳出當前的循環,即使循環本該還有多次,但是也不再執行,例如上例中的代碼表示有7次機會,但是一旦猜中則結束后面的循環。
4.for循環
上述的例子是用for循環如下,與while的區別在于,不需要對計數器count進行初始化,自增,邊界判斷操作,for語句自帶該功能:
for循環可以嵌套用來進行矩陣打印,例如打印一個乘法表:
print()打印默認以換行符結束,如果需要指定結束標志用print(,end=),end在這里表示結束標志,如果需要空格則可以寫成end=''
5.字符串格式化
字符串輸出有以上4種方式,string可以用“+”進行字符串拼接。在python中,任何類型都可以用字符串形式輸出,用%s表示,如果指定數據格式,則%d表示整數,%f表示浮點數。%03d表示輸出的整數是三位數顯示,不足的位數用0補齊。%.2f表示輸出的小數精確到小數點后兩位。
總結
以上是生活随笔為你收集整理的学习笔记二 Charles抓包及Python循环控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改某个appointment已经存在的
- 下一篇: 关于Business Document