自动化测试---Python脚本调试知识

本次调试使用到的库websocket、uuid、codecs、subprocess几个库

subprocess.Popen

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)\\xxx\\xxx xxx xxx xxx\\xxx\\xxx.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()

关于websocket博主讲解地址:

https://blog.csdn.net/Darkman_EX/article/details/82592118

ws = create_connection(str(wsUrl))—连接websocket服务器
ws.send()—发送websocket数据
ws.recv()—接受websocket数据

关于codecs包部分知识链接:

https://blog.csdn.net/qq_28072715/article/details/79387422
https://www.cnblogs.com/Detector/p/8744992.html
关于time:
time.strftime(u"%Y-%m-%d %H:%M:%S", time.localtime())

UUID

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

python 传多个参数函数:

#! -*-coding:UTF-8-*-



def Test(**keyargs):
	print keyargs

Test(sd="asdasd",dc="asdasd",cg="asdsd")
打印出来是字典:
{'cg': 'asdsd', 'dc': 'asdasd', 'sd': 'asdasd'}

Token:会话你来我往的标志

python学习地址github

https://github.com/search?utf8=%E2%9C%93&q=python&type=

发布了20 篇原创文章 · 获赞 2 · 访问量 582

猜你喜欢

转载自blog.csdn.net/qq_36495121/article/details/103938081
今日推荐