自動化測試 Python指令碼除錯知識

2021-10-02 03:04:42 字數 2880 閱讀 9664

本次除錯使用到的庫websocket、uuid、codecs、subprocess幾個庫

subprocess.popen類用於在乙個新程序中執行乙個子程式,上述subprocess函式均是基於subprocess.popen類

•subprocess.popen(args[, bufsize, stdin, stdout, stderr, …]):popen類的建構函式,返回結果為subprocess.popen物件;

簡單用法:

#! -*-coding:utf-8-*-

import subprocess

import time

po=subprocess.popen(

"c:\\program files (x86)\\***\\*** *** *** ***\\***\\***.exe"

,shell=

true

,stdout=subprocess.pipe,stderr=subprocess.pipe)

#popen 返回物件常用方法

#1.檢查命令是否已經執行結束,若結束返回狀態碼;若未結束返回none;

print po.poll(

)#2..wait([timeout, endtime]):等待子程序結束,並返回狀態碼;若超過timeout(s)程序仍未結束,則丟擲異常;

# print po.wait([timeout, endtime])

#3.send_signal(signal):傳送訊號signal給子程序

# print po.send_signal(signal)

#terminate():停止子程序;

# print po.terminate()

#kill():殺死子程序;

# print po.kill()

#•popenobject.communicate([input, timeout]):與程序進行互動(如傳送資料到stdin、讀取stdout和stderr資料),它會阻塞父程序,直到子程序完成;

# input:表示將傳送到子程序的字串資料,預設為none;

# timeout:超時判斷,若超過timeout秒後仍未結束則丟擲timeoutexpired異常;

# communicate返回值:乙個元組(stdout_data, stderr_data)

# (stdoutput,erroutput) = po.communicate()

ws = create_connection(str(wsurl))—連線websocket伺服器

ws.send()—傳送websocket資料

ws.recv()—接受websocket資料

關於time:

time.strftime(u"%y-%m-%d %h:%m:%s", time.localtime())

uuid: 通用唯一識別符號 ( universally unique identifier ), 對於所有的uuid它可以保證在空間和時間上的唯一性. 它是通過mac位址, 時間戳, 命名空間, 隨機數, 偽隨機數來保證生成id的唯一性, 有著固定的大小( 128 bit ). 它的唯一性和一致性特點使得可以無需註冊過程就能夠產生乙個新的uuid. uuid可以被用作多種用途, 既可以用來短時間內標記乙個物件, 也可以可靠的辨別網路中的永續性物件.

python的uuid模組提供uuid類和函式uuid1(), uuid3(), uuid4(), uuid5() 來生成1, 3, 4, 5各個版本的uuid ( 需要注意的是: python中沒有uuid2()這個函式). 對uuid模組中最常用的幾個函式總結如下:

1. uuid.uuid1([node[, clock_seq]]) : 基於時間戳

使用主機id, 序列號, 和當前時間來生成uuid, 可保證全球範圍的唯一性. 但由於使用該方法生成的uuid中包含有主機的網路位址, 因此可能危及隱私. 該函式有兩個引數, 如果 node 引數未指定, 系統將會自動呼叫 getnode() 函式來獲取主機的硬體位址. 如果 clock_seq 引數未指定系統會使用乙個隨機產生的14位序列號來代替.

2. uuid.uuid3(namespace, name) : 基於名字的md5雜湊值

通過計算命名空間和名字的md5雜湊值來生成uuid, 可以保證同一命名空間中不同名字的唯一性和不同命名空間的唯一性, 但同一命名空間的同一名字生成的uuid相同.

4. uuid.uuid4() : 基於隨機數

通過隨機數來生成uuid. 使用的是偽隨機數有一定的重複概率.

5. uuid.uuid5(namespace, name) : 基於名字的sha-1雜湊值

#! -*-coding:utf-8-*-

from websocket import create_connection

import uuid

# try:

# ws = create_connection("ws://localhost:17020")

# except exception as e:

# print e.message

#使用方法

# sr=uuid.uuid1()

# sr=uuid.uuid3(namespace, name)

sr=uuid.uuid4(

)print sr

#! -*-coding:utf-8-*-

deftest

(**keyargs)

:print keyargs

test(sd=

"asdasd"

,dc=

"asdasd"

,cg=

"asdsd"

)列印出來是字典:

Python自動化除錯

在文件裡找到了這幾個看上去用得上的函式 dbg print all debug registers self bp set self,address,description restore true handler none get register self,register param regi...

部署python自動化指令碼 搭建自動化指令碼執行環境

年前把平台的指令碼寫好了,準備在虛擬機器中全部執行一遍。沒想到在虛擬機器中配置了很長時間,才把環境搭好。為了不再犯這配置環境的苦,在這簡單說說環境的搭建吧。因為寫的指令碼是在win7上實現的,所以虛擬機器我安裝的也是win7系統。1 安裝python 2 配置環境變數 python安裝成功後,將安裝...

python 資料驅動自動化測試指令碼

class db con sql 資料庫連線類 def db con config 資料庫連線引數配置 ipadderss user passwd port 33306 return ipadderss,user,passwd,port 資料庫訪問連線 def con get account try...