软件测试之python篇
零基础学习python脚本测试,查漏补缺,定期做知识整理
white_run
为了不知名的某一天而努力的人
展开
-
40、python之正则表达式
一、基础语法import re# 从起始行开始匹配print(re.match('www', 'www.baidu.com').span())print(re.search('www', 'www.baidu.com').span())# 不从起始行开始匹配(match只匹配字符串开头,如果找不到则返回None;search匹配整个字符串,直到找到一个匹配)print(re.match('com', 'www.baidu.com'))print(re.search('com', 'ww原创 2020-10-12 15:20:13 · 129 阅读 · 0 评论 -
39、python之urllib库
一、urllib库介绍它是python内置的HTTP请求库,它包含了:request、error、parse(提供许多URL处理方法,比如拆分、解析、合并)、rebotparser(用来识别网站robot.txt文件,然后判断网站是否可爬)二、内置函数import urllib.request response = urllib.request.urlopen('http://httpbin.org/post', data=data)print(response.read())原创 2020-09-30 13:42:41 · 118 阅读 · 0 评论 -
37、消息队列---yimq(测试人员只需要了解,实际是由开发人员负责)
在高峰期的时候它的作用就显现出来了为什么会使用消息队列?异步:A发送请求给B,B不能立即响应,A需要等待B完成后才能发送下一个请求,这样就造成了A系统的资源浪费,使用消息队列后,A直接请求后直接将消息丢入队列中,就完成了一次请求,然后继续处理下一个请求解耦:A发送数据给B、C、D、E,不使用队列时会出现某系统不需要而其余系统需要的情况,使用消息队列的话,A系统就只负责生产数据,不需要考虑消息被哪个系统来消费削峰:当A系统到某个点,请求数量暴增,B系统响应不过来,这样就会导致系统崩溃,我...原创 2020-09-29 15:35:28 · 683 阅读 · 0 评论 -
36、UTF-8/Unicode/gbk/gb2312/ANSI编码的区别
一、UTF-8它可显示中文、英文、日文、韩文等其他语言,是一种国际化的标准编码规则:如果只有一个字节则其最高二进制位位0,如果是多字节,其第一个字节从最高位开始,连续的二进制位值为 1的个数决定了其编码的位数,其余各字节均为10开头二、Unicode它是一种可变长度字符编码,又称万国码。三、gbk是国家标准GB2312基础上扩容后兼容GB2312的标准,它的编码不论是是中文还是英文都是用双字节来表示的,为了区分中文,将其最高位都设定为1,相比UTF-8来说通用性较差,但是占用数据原创 2020-09-29 09:44:11 · 222 阅读 · 0 评论 -
34、常用的python中的模块作用二
一、logging模块错误级别:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICALlogging.basicConfig(**kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息二、TimeRotatingFileHandler模块form logging.handlers import TimeRotatingFileHandler这个模块原创 2020-09-24 17:46:49 · 178 阅读 · 0 评论 -
33、常用的python中的模块作用一
一、os模块它是一个Python的系统编程的操作模块,可以处理文件和目录os.path.abspath(name):获得绝对路径os.path.dirname(path):返回文件路径二、redis数据库它是一个高性能的key-value数据库主要是Redis实现缓存数据的存储可以设置过期时间.对于一些高频读写、临时存储的数据特别适合.三、codecs模块------用作编码转换python编码转换过程:原有编码---》内部编码---》目的编码import sysp原创 2020-09-24 16:40:04 · 637 阅读 · 0 评论 -
35、request获取接口响应时间elapsed
print(result.elapsed)print(result.elapsed.total_seconds())print(result.elapsed.microseconds)print(result.elapsed.seconds)print(result.elapsed.days)print(result.elapsed.max)print(result.elapsed.min)print(result.elapsed.resolution)原创 2020-09-23 16:11:52 · 1198 阅读 · 0 评论 -
32、测试中涉及的环境介绍
开发环境:是专门用于开发的服务器测试环境:一般是克隆的生产环境的配置,一般在测试环境工作不正常,那么肯定不能把它发布到生产机上生产环境(上线环境--真实环境):是指正式提供对外服务的,可以理解为包含所有功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或修改UAT环境:验收测试,主要用来作为客户体验的环境仿真环境:模拟正式的使用环境,所有陪住、页面展示等都与商家正在使用的一样,差别只在环境的性能方面SIT是继承测试UAT时验收测试,在SIT完成后UAT才开始原创 2020-09-21 17:56:09 · 781 阅读 · 0 评论 -
38、数据拆分
一、数据拆分:import unittestclass TestMath(unittest.TestCase): def test_print_msg(*args): print(args) t = [1, 4] # 脱外套 print(*t)if __name__ == "__main__": unittest.main()二、获取当前路径名称import ospath=r"D:\PycharmProjects\c原创 2020-09-30 13:42:06 · 127 阅读 · 0 评论 -
31、ddt+os之接口测试
一、请求函数二、路径函数import os'''专门来读取路径的值'''#切换到顶级目录project_path=os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]#测试用例的路径test_case_path=os.path.join(project_path,'testcase_03','test.xlsx')print(test_case_path)#测试报告的路径test_report_path=o原创 2020-09-03 17:43:10 · 123 阅读 · 0 评论 -
30、获取登录接口cookie的接口自动化请求
1、请求函数2、测试用例import unittestfrom testcase_04.http_request import HttpRequestclass TestHttpRequest(unittest.TestCase): def setUp(self): pass def test_getlist(self): url = 'http://api.hd.shall-buy.top/car-v2/index/car-operate原创 2020-09-01 09:15:31 · 957 阅读 · 0 评论 -
29、常见的一些面试知识点
一、linux中,文件的访问权限4(可读)、2(可写)、1(可执行)二、linux中,如何从root用户切换到普通用户(普通用户就是test)su - test三、TCP和UTP的区别TCP全称为传输控制协议,可以提供面向连接、可靠的、点到点的通信UTP全称为用户报文(数据)协议,可以提供面向连接的不可靠的点到多点的通信四、DNS是什么,它是如何工作的域名解析服务,用于将域名解析为IP,或将IP解析成域名客户机可以指定DNS服务来解析,或用本机HOSTS文件进行解析五原创 2020-08-31 13:59:02 · 106 阅读 · 0 评论 -
28、拓展之pandas(未完成~~~)
一、概念import pandas as pddf=pd.read_excel(r"D:\PycharmProjects\class_01\\testcase_03\\test.xlsx",sheetname='Sheel1')print(df.values)#读取所有---是个列表print(df.ix[1])#指定读取第一行print(df.ix[1,1])#指定读取第一行第一列print(df.ix[:])#读取所有---是个矩阵print(df.ix[:,["url"]].val原创 2020-08-30 16:59:53 · 94 阅读 · 0 评论 -
27、针对有COOKIE时的测试用例执行
------以充值为例1、excel中编写一个测试用例注:在充值之前我们需要登陆获取COOKIE值来进行充值,因此第一条用例必须是cookie2、读取excelfrom openpyxl import load_workbook# 相对路径 绝对路径# 打开工作簿class DoExcel: def get_data(self, file_name, sheet_name): # wb=load_workbook("../testcase_0原创 2020-08-29 14:58:12 · 414 阅读 · 0 评论 -
24、编写自动化测试思路
1、最佳测试方案:(写代码之前,先思考怎么写)1、在Excel/数据库中准备好测试数据(把测试用例写到EXCEL里面去)2、用代码读取测试数据(编写一个excel读取和存储测试数据的类,从EXCEL中获取必要的测试数据)3、直接进行测试(编写一个HTTP请求类完成所需要的测试,比如register、login、recharge等)4、把测试结果存入到Excel/数据库(创建实例完成接口的测试,并同步把测试结果存到excel中)5、输出一份测试报告+jenkins做成一个集成平台(做好测试原创 2020-08-26 16:49:04 · 466 阅读 · 0 评论 -
26、python之os模块
一、获取当前路径import osres=os.getcwd()print(res)二、返回指定路径下的所有文件和目录的列表import ospath='D:\PycharmProjects\class_01\\testcase_01'res=os.listdir(path)print(res)三、返回指定路径下的所有子文件夹,结果由路径、文件夹列表、文件列表组成的元组import ospath='D:\PycharmProjects\class_01\\testcas原创 2020-08-28 16:09:54 · 147 阅读 · 0 评论 -
25、测试套中加载测试用例
一、初级a、请求函数import requestsclass HttpRequest(): def http_request(self, url, data, method, cookie=None): if method.lower() == "get": # verify=False忽略证书 ssl res = requests.get(url, data, cookies=cookie, verify=False)原创 2020-08-27 21:51:57 · 318 阅读 · 0 评论 -
23、接口之单元测试+test_中加入测试数据
一、单元测试----针对某一条单独的测试用例a、请求函数、b、测试用例import unittestfrom testcase_01.test_http import HttpRequestclass TestHttpRequest(unittest.TestCase): def setUp(self): print("我要开始测试了") def test_normal_login(self): # 测试正常的登录 url = "ht原创 2020-08-25 09:04:30 · 340 阅读 · 0 评论 -
22、类与对象
一、静态方法import requestsclass HttpRequest(): ''' 完成http请求 ''' # def __init__(self, url, data): # 初始化函数 # self.url = url # self.data = data def get_request(self, url, data): res = requests.get(url, data)原创 2020-08-24 11:14:54 · 84 阅读 · 0 评论 -
21、while与if语句搭配使用break continue
一、方法一 加入break防止进入死循环,if进行条件限制count=0while 1:#循环体 print("你真棒") count+=1 if count == 10: break else: continue#结束本轮,继续下一轮二、方法二 while后面+变量控制count=0while count<10: print("你真棒") count+=1三、方法三 f...原创 2020-08-23 20:34:31 · 3795 阅读 · 0 评论 -
20、读取文件路径+配置文件信息
一、封装文件路径类import osclass GetPath(): def read_path(self): proDir = os.path.split(os.path.realpath(__file__))[0] configPath = os.path.join(proDir, "case.config") path = os.path.abspath(configPath) return configPathif原创 2020-08-23 20:33:39 · 344 阅读 · 0 评论 -
19、ddt数据驱动之选择性执行用例
一、请求函数import requestsclass HttpRequest(): def http_request(self, url, data, method, cookie=None): if method.lower() == "get": # verify=False忽略证书 ssl res = requests.get(url, data, cookies=cookie, verify=False)原创 2020-08-21 09:02:07 · 470 阅读 · 0 评论 -
18、ddt数据驱动(处理数据的模型)
一、处理字典 test_data = [[1, 2], [4, 5, 6]]# ddt ddt+unitteat来进行数据的处理 第三方库# 装饰器 会在你的函数之前运行 不会改变代码的结构import unittestfrom ddt import ddt, data, unpacktest_data = [[1, 2], [4, 5, 6]]# 装饰测试类@ddtclass TestMath(unittest.TestCase): @data(test_d..原创 2020-08-20 09:07:25 · 621 阅读 · 0 评论 -
17、接口自动化之读取excel测试数据(含header之方法三)
from openpyxl import load_workbookclass DoExcel: def __init__(self,file_name,sheet_name): self.file_name=file_name self.sheet_name=sheet_name def get_header(self): """ 获取第一行的标题行 """ wb=load_wo...原创 2020-08-20 09:06:49 · 304 阅读 · 0 评论 -
16、接口自动化之读取excel测试数据( 根据传入的坐标来获取值 对磁盘读写要求高一些)
a.首先编写请求函数import requestsclass HttpRequest(): def http_request(self, url, data, method, cookie=None): if method.lower() == "get": # verify=False忽略证书 ssl res = requests.get(url, data, cookies=cookie, verify=False)原创 2020-08-18 09:35:16 · 206 阅读 · 0 评论 -
15、接口自动化之读取excel测试数据(一次性读取所有数据 对内存要求会高一些)
# excel处理 EXCEL去处理测试数据 测试结果 pip install openpyxl# 存入Excel里面 Python去操作Excel# 1、只支持这种后缀 .xlsx ---》openpyxl只支持这种格式# 2、from openpyxl import load_workbook# 打开Excel# Open the given filename and return the workbookwb = load_workbook(r"D:\PycharmP...原创 2020-08-18 09:34:56 · 460 阅读 · 0 评论 -
14、初始化函数传参--super超继承
一、选取请求方式import requestsclass HttpRequest(): def http_request(self, url, data, method, cookie=None): if method.lower() == "get": # verify=False忽略证书 ssl res = requests.get(url, data, cookies=cookie, verify=False)原创 2020-08-16 22:03:32 · 324 阅读 · 1 评论 -
13、反射
一、什么反射class GetData: Cookie = '小郭' if __name__ == '__main__': print(GetData.Cookie) #设置(类名,属性名,新值) 修改属性值 setattr(GetData,'Cookie','小黄')#可以直接把类里面的属性做修改 #判断里面有没有cookie这个属性 print(hasattr(GetData,'Cookie')) #获取cookie的值 at原创 2020-08-15 11:52:28 · 130 阅读 · 0 评论 -
12、self.cookie与global cookie两种方法
一、封装的函数import requestsclass HttpRequest(): def http_request(self, url, data, method, cookie=None): if method.lower() == "get": # verify=False忽略证书 ssl res = requests.get(url, data, cookies=cookie, verify=False)原创 2020-08-14 19:04:47 · 531 阅读 · 0 评论 -
11、简单的测试报告
一、函数class MathMethod: def __init__(self, a, b): self.a = a self.b = b def add(self): return self.a + self.b def sub(self): return self.a - self.b def multi(self): return self.a * self.b二、测试用例原创 2020-08-14 09:25:18 · 482 阅读 · 0 评论 -
10、Python之定向执行用例数
一、调用函数执行用例(按照字母排序执行测试用例)class MathMethod: def __init__(self, a, b): self.a = a self.b = b def add(self): return self.a + self.b def sub(self): return self.a - self.b#接口测试的本质 就是测试类里面的函数(数据驱动测试)#单元测试的本质 .原创 2020-08-12 17:09:47 · 318 阅读 · 0 评论 -
9、接口自动化之requests 第三方库
一、get请求import requests#get请求 不带参数url="https://www.juhe.cn/docs"#返回一个消息实体res=requests.get(url)print(res)#响应头 响应状态码 响应报文/正文print("响应头:",res.headers)print("响应状态码:",res.status_code)#html格式print("响应正文:",res.text)二、post请求import requests#pos原创 2020-08-11 10:05:07 · 184 阅读 · 0 评论 -
8、cookie and session基础知识
一、http request(客户端到服务器的请求信息)a.请求地址:urlb.请求方式:get、post、head、put、delete、connect、option、tracec.HTTP协议/版本d.请求头信息:header、Cookies、user Agent假装游览器发送请求......e.请求正文:二、http response(返回结果)a.状态码:200、302(临时重定向)、304(未修改,cdn服务器:内容分发网络,一般做静态服务器如图片/js/css,比如有原创 2020-08-10 16:25:19 · 138 阅读 · 0 评论 -
7、单继承&多继承&超继承
一、一个继承class Robot1: def __init__(self,name,num): self.name=name self.num=num def walking_on_ground(self): print(self.name+"只能平地行走,不能避障") def robot_info(self): print("{0}机器人{1}代".format(self.name,self.num))原创 2020-08-09 21:04:21 · 195 阅读 · 0 评论 -
6、异常处理+对象
一、异常处理&调试异常:在运行代码过程中遇到的任何问题,带有error字样的都是异常#异常处理:我们对代码中所有可能会出现的异常 进行的处理#1、处理某个错误 2、处理某种类型的错误 3、有错就抓#try..except#警察try: """ 嫌疑人 """#警力出动 (把错误抓起来 存到变量a中)except Exception as a: print("逮捕成功") print("错误为:{0}".format(a))#2原创 2020-08-08 23:26:42 · 101 阅读 · 0 评论 -
5、文件处理
一、怎么导入自己的模块from 模块import 函数import 模块.函数"""测试代码""" #主程序的执行入口 只有当你在当前模块下面执行的时候 才会执行if __name__ == '__main__':"""断言"""文件处理#1、首先在同级目录下新建一个txt文件,里面可添加文字方便之后查看结果#2、再新建一个py文件file=open("1.txt")res=file.read()print(res)...原创 2020-08-07 12:28:39 · 166 阅读 · 0 评论 -
4、函数+不定长参数+作用于变量
一、Python内置函数print input len type str int float list rangepop append insert keys split replace stripremove clear二、函数语法:函数命名规范:小写字母 不能以数字开头 不同字母之间用下划线隔开def 函数名(参数1,参数2,参数3): #函数体三、调用:函数名()#name 形参 位置参数def da_lao(name): print("{...原创 2020-08-06 09:21:07 · 184 阅读 · 0 评论 -
3、控制语句+循环语句+判断语句
一、控制语句 分支分流二、循环语句 for while# 1、python for循环语法:#for 变量名 in 某个数据类型:(数据类型包含:字符串 列表 元组 字典 集合等) #代码块s="hello"#for循环遍历s里面的元素 然后赋值给itemfor item in s: print(item)#for循环的次数 由数据的元素个数决定s="hello"for item in s: print("***666@@@")#列表同上#字.原创 2020-08-05 09:03:30 · 175 阅读 · 0 评论 -
2、列表+元素+字典+运算符
列表原创 2020-08-04 10:37:48 · 270 阅读 · 0 评论 -
1、python自动化脚本安装与配置
一、安装:1、首先安装Python3.X ---》解释器(Interpreter:填写解释器的路径)2、pycharm社区版 ---》编辑器二、setting:1、File Encodings:设置编码2、File and CodeTemplates:设置模板#!usr/bin/env python# -*- coding: utf-8 -*-"""@Author : weixin@Time : ${YEAR}/${MONTH}/${DAY}...原创 2020-08-03 20:41:50 · 983 阅读 · 0 评论