
python
文章平均质量分 53
小志老师
拥有5年测试经验,目前在一家上市公司担任性能测试主管及自动化测试主管的职位,主要建设部门的性能测试工作规范和制度,提供性能测试技术、为公司培训性能测试人才。曾在两周内为项目搭建一套接口自动化测试框架,在运维监控不健全的情况下,可以及时发现线上的问题并及时修复。
展开
-
【Elasticsearch】ES查询出满足以下其中任意一个条件的订单
【Elasticsearch】ES查询出满足以下其中任意一个条件的订单原创 2022-08-18 14:26:43 · 1587 阅读 · 0 评论 -
python 使用unittest时,提示:ResourceWarning
python 使用unittest时,提示:ResourceWarning原创 2022-08-04 16:22:57 · 821 阅读 · 0 评论 -
python Web_UI自动化实现上传本地文件
一、实现上传本地文件概述:在写Web端UI自动化时,经常会遇到上传本地文件的用例,如何实现?1、首先下载AutoIT工具,它是一个类似脚本语言的软件,利用此软件我们可以方便的实现模拟键盘、鼠标、窗口等操作,实现自动化安装完后可以找到如下一些工具2、使用方法①、打开被测试的HTML页面,并点击上传文件,弹出上传文件窗口,并保持当前窗口②、打开AutoIt Window Info(x64)工具③、移动至工具中Finder Tool标签下的按钮,左击不要松开,移动至上传文件的【输入框】和【打开】按原创 2020-08-18 10:46:26 · 3044 阅读 · 2 评论 -
python 接口自动化测试框架设计(十一)
十二、读取excel表中的数据,执行requests请求import syssys.path.append("D:\\PycharmProjects\\FN_API_V1.0.1")from base.run_method import RunMethodfrom data.get_data import GetDatafrom util.common_util import CommonUtilfrom util.send_email import SendEmailfrom util.Lo原创 2020-08-14 14:16:02 · 255 阅读 · 0 评论 -
python 接口自动化测试框架设计(十)
十一、配置logging,打印错误日志import loggingfrom settings import confclass LoggerHandler: """ 日志操作 """ _logger_level = { 'debug': logging.DEBUG, 'info': logging.INFO, 'warning': logging.WARNING, 'error': logging.ERROR,原创 2020-08-14 14:14:38 · 270 阅读 · 0 评论 -
python 接口自动化测试框架设计(九)
十、配置脚本路径、报告路径、日志相关等import osimport datetimeBASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#脚本路径file_path = 'testcase.xls'TEST_CASE_PATH = os.path.join(BASE_PATH,'data',file_path)#报告路径TEST_CASE_REPORT_PATH = os.path.join(BAS原创 2020-08-14 14:13:01 · 237 阅读 · 0 评论 -
python3 读取yaml配置文件
一、yaml配置文件介绍配置文件,主要存放一些全局配置变量,如:①、截图、报告、驱动存放路径;②、发送邮件使用到的发件人邮箱及登录密码;③、绕过登录验证码要写入的cookies信息。二、具体操作步骤1、先安装yaml模块pip3 install pyyaml2、编写一个yaml文件# 谷歌浏览器驱动路径driver: driver: "D:\\Python\\Lib\\site-packages\\selenium\\webdriver\\chrome\\chromedriver.e原创 2020-07-24 17:03:51 · 2435 阅读 · 0 评论 -
python 接口自动化测试框架设计(八)
九、获取excel表单元格中的内容(get_data.py)#coding:utf-8from util.operation_excel import OperationExcelfrom data import data_configfrom util.operation_json import OperationJsonclass GetData: def __init__(self): self.opera_excel = OperationExcel()原创 2020-06-16 17:30:32 · 308 阅读 · 0 评论 -
python 接口自动化测试框架设计(七)
八、操作header(operation_header.py)#coding:utf-8import requestsimport jsonfrom operation_json import OperationJsonclass OperationHeader: def __init__(self,response): self.response = json.loads(response) def get_response_url(self):原创 2020-06-16 14:34:24 · 262 阅读 · 0 评论 -
python 接口自动化测试框架设计(六)
七、操作json(operation_json.py)#coding:utf-8import jsonclass OperationJson: def __init__(self,file_path=None): if file_path == None: self.file_path = '' else: self.file_path = file_path self.data =原创 2020-06-12 10:47:27 · 244 阅读 · 0 评论 -
python 接口自动化测试框架设计(五)
六、判断字符串包含,判断字典是否相等(common_util.py)#coding:utf-8import jsonimport operatorclass CommonUtil: def is_contain(self,str_one,str_two): flag = None if str_one in str_two: flag = True else: flag = False原创 2020-06-12 10:36:59 · 226 阅读 · 0 评论 -
python 接口自动化测试框架设计(四)
五、操作excel中的测试用例(operation_excel.py)#coding:utf-8import xlrdfrom xlutils.copy import copyclass OperationExcel: def __init__(self,file_name=None,sheet_id=None): if file_name: self.file_name = file_name self.sheet_id原创 2020-06-12 10:18:09 · 246 阅读 · 0 评论 -
python 接口自动化测试框架设计(三)
四、获取excel中的每一列(data_config.py)#coding:utf-8class global_var: id = '0' request_name = '1' url = '2' run = '3' request_way = '4' headers = '5' cookies = '6' case_depend = '7' data_depend = '8' field_depend = '9'原创 2020-06-10 14:20:30 · 282 阅读 · 0 评论 -
python 接口自动化测试框架设计(二)
三、base封装post/get/put请求(run_method.py)# -*- coding:utf-8 -*-import requestsimport jsonimport urllib3urllib3.disable_warnings()class RunMethod: def get_main(self,url,data,headers=None): res = None if headers != None:原创 2020-06-10 14:19:54 · 266 阅读 · 0 评论 -
python 接口自动化测试框架设计(一)
一、工程目录二、测试用例设计原创 2020-06-10 14:19:03 · 386 阅读 · 0 评论 -
python 接口自动化测试框架-unittest生成测试报告
一、下载HTMLTestRunner自行下载安装即可二、使用HTMLTestRunner生成测试报告1、直接看代码吧# -*- coding:utf-8 -*-import unittestimport osimport timeimport HTMLTestRunner# 用例路径# case_path = os.path.join(os.getcwd())case_path = 'D:\\PycharmProjects\\API_TEST\\base'print(case_pa原创 2020-06-03 17:11:40 · 613 阅读 · 0 评论 -
python 接口自动化测试框架-unittest中assert的使用
一、assert的使用import unittestfrom base.runmain import RunMainclass testcase(unittest.TestCase): def setUp(self): print("case执行前") def test_01(self): url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&原创 2020-06-03 14:20:22 · 500 阅读 · 0 评论 -
python 接口自动化测试框架-unittest和requests重构封装
一、unittest运行测试用例的几种方式1、通过testcase.main()来执行测试用例:import unittestimport requestsimport jsonclass testcase(unittest.TestCase): def test_01(self): url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&原创 2020-06-02 15:07:45 · 740 阅读 · 0 评论 -
python 接口自动化测试框架-unittest框架的基本使用
一、unittest简单介绍1、import unittest2、定义一个继承自unittesu.TestCase的测试用例类3、定义SetUp和TearDown,在每个测试用例前后做一些辅助工作4、定义测试用例,名字以test开头5、一个测试用例应只测试一方面,测试目的和测试内容应很明确,主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符6、调用unittest.main()启动测试7、如果测试没有通过,会输出响应的错误提示,如果测试全部通过则原创 2020-06-01 15:48:40 · 1781 阅读 · 0 评论 -
python 接口自动化测试框架-使用类封装测试脚本
一、使用类对post请求和get请求进行封装1、首先我们来了解一下什么是类及类的作用:class run_main: # 定义一个class类 passrun = run_main() # 创建一个run_main实例run.post = "POST" # 为实例添加 POST 属性2、下面我们来定义实例方法import requestsclass RunMain: def __init__(self,url,data,headers,method):原创 2020-06-01 09:43:15 · 564 阅读 · 0 评论 -
python 接口自动化测试框架-requests库使用
一、requests库的安装二、requests发送post请求①、post请求方式的编码有三种:Ⅰ、application/x-www-form-urlencoded:最常用的post提交数据的方式,以form表单形式提交数据import requestsurl = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&search=1'data = { 'se原创 2020-05-29 16:40:21 · 270 阅读 · 0 评论 -
python 接口自动化测试框架-接口开发
一、python 使用flask框架之get接口开发1、在pycharm中,安装flask2、引入Flask模块,Flask模块实现了一个WSGI应用from flask import Flask,requestimport json3、app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递(name)。让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。app = Flask(__name__)原创 2020-05-18 16:28:24 · 1446 阅读 · 0 评论 -
接口自动化测试框架--接口基础
说到接口自动化测试框架就想到了测试开发工程师。一、测试开发工程师的要求是什么呢?1、接口基础2、接口开发3、unittest/pytest与接口测试结合4、从设计到开发接口测试框架那我们接下来一一细说:1、接口基础①、接口接口又被称为API(APPlication Programming Interface,应用程序编程接口),是一些预先定义的函数,目的是提供应用程序与开发人员基...原创 2020-04-23 19:49:09 · 351 阅读 · 0 评论 -
python 连接MySQL数据库
一、python 连接mysql数据库进行操作,步骤:1、连接数据库2、生成游标对象3、执行SQL语句4、关闭游标5、关闭连接二、具体实现步骤:1、首先导入pymysql包import pymysql2、打开数据库连接conn = pymysql.connect('xx.xx.xxx.xx', 'xiao', 'xiaoxiao@123', 'test')3、使用curs...原创 2019-12-30 10:33:48 · 187 阅读 · 0 评论 -
python 生成sign签名(2)
一、要加密的信息是一个变量时,如何实现md5加密需求:将日期+but4NC5RWATYr30DuVf0ylAZL571oBGH生成数字签名作为接口的入参1、将python 生成sign签名(1)中的代码copy到(2)中:import datetimetoday = str(datetime.date.today()).split('-')print(type(today))a = '...原创 2019-12-26 12:51:34 · 2054 阅读 · 2 评论 -
python 生成sign签名(1)
一、要加密的信息是一个变量时,如何实现md5加密需求:将日期+but4NC5RWATYr30DuVf0ylAZL571oBGH生成数字签名作为接口的入参1、首先要获取当前日期:①、python中导入datetimeimport datetime②、获取当前日期:today = datetime.date.today()print(today)print(type(today))...原创 2019-12-26 12:18:17 · 2464 阅读 · 0 评论 -
python3 MD5加密
一、MD5加密详解:在python3中MD5模块被剔除,所以要想在python3中进行MD5加密需要导入hashlib模块来进行md5操作第一种方式:1、导入hashlib模块import hashlib2、输入待加密的信息str = "this is a test"3、创建MD5对象a = hash.md5()4、对待加密信息进行加密因为python3里默认的str是u...原创 2019-12-26 11:31:56 · 388 阅读 · 0 评论 -
python 自动化测试之测试数据
1、测试的数据放在哪?首先测试的数据分很多种,有登录的账号数据,有注册的账号数据,还有接口的参数,还有邮箱配置的数据等;测试数据不能写死在代码里面,这个是原则问题,也是代码的大忌。测试数据存放总结:①、对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来写在配置文件里(如:ini)。②、对于一次性消耗的数据,比如注册,每次注册不一样的,可以用随机函数生成。③、对于一个接口有多组...原创 2019-12-25 11:22:23 · 1085 阅读 · 5 评论 -
python json和字典的区别
1、json和字典的区别:首先python里面的基础数据类型有:int,str,float,list,bool,tuple,dict,set这几种类型。json是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。特点:简洁、清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。...原创 2019-12-25 11:08:33 · 381 阅读 · 0 评论 -
python 自动化测试
一、自动化测试怎么判断获取的用户名是否正确?data = {"username":345,"pawd":"123456a"}if data["username"] == 345: print("用户名正确")data = [{"username":345,"pwd":"123456a"}]if data[0]["username"] == 345: print("用户名正确") 二...原创 2019-12-25 11:02:46 · 149 阅读 · 0 评论 -
python 基础(2)
1、递归:def recursion(l): if l == 1: return 1 else: return l*recursion(l-1)a = 10print(recursion(a))2、斐波那契数列:1,1,2,3,5,8,13…a = 0b = 1while b<100: print(b,end=",") a,b = b,a+b3、幂的递归:...原创 2019-12-25 10:45:08 · 105 阅读 · 0 评论 -
python 基础(1)
1、统计:从A = [2,4,6,8,0,-3,-7,-4,-6,9],分别统计出大于0和小于0的数字个数#coding:utf-8A = [2,4,6,8,0,-3,-7,-4,-6,9]k = 0l = 0for i in A: if i > 0: k+=1 elif i < 0: l+=1 else: passprint(k,l)2、字符串切片...原创 2019-12-25 10:30:19 · 275 阅读 · 0 评论 -
python 打印读取字段的行号
一、打印出读取到字段的行号: with open('D:\\PycharmProjects\\data_config\\result.txt', 'r') as f: for (num,value) in enumerate(f): print("line num is: ",num+1,"content:",value) f.close()看完可能会有疑问,...原创 2019-12-02 17:19:59 · 1004 阅读 · 0 评论 -
python+requests cookies传给下一个接口作为参数
背景:我们在做接口自动化测试时,肯定会遇到要将上一个接口获取的cookies作为下一个接口输入的参数,当遇到这种问题如何处理?我们只需要定义一个全局变量就OK了,具体实现的方式:import requestsimport unittestclass testDemo(unittest.TestCase):global cookies def test_01openId(self)...原创 2019-11-20 13:47:13 · 1184 阅读 · 0 评论 -
在做python自动化测试,编写unittest框架运行代码的时候不执行
在做python自动化测试,编写unittest框架运行代码的时候不执行1、问题出在哪?在编写自动化测试脚本的时候:import unittestfrom selenium import webdriverfrom login import Loginimport timeclass hotelmap(unittest.TestCase): def setUp(self)...原创 2018-09-26 16:15:46 · 1743 阅读 · 1 评论 -
Page Object 设计模式的思想在python自动化测试中的应用
这段时间对python自动化测试不断的深入学习,终于到了Page Object设计模式;Page Object设计模式:其实就是将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高用例的可维护性。写脚本的时候分两个.py就可以,一个LoginPage.py这个是定义登录页面的基本操作方法;另一个BasePage.py这个是定义页面基础类,封装所有页面公用的方法。...原创 2018-10-11 17:04:43 · 693 阅读 · 0 评论 -
在Python3+Selenium 做 UI 自动化中遇到的两个问题
在Python3+Selenium 做 UI 自动化中遇到的两个问题1、输出报告报错<_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘UTF-8’>解决方法:将print (sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))修改为:sys.stderr...原创 2018-10-10 11:36:18 · 819 阅读 · 0 评论 -
在做python自动化测试的过程中关于自动发送163邮件经常遇到的三个问题
1、如果在结果中报错550 Error:user has no permission原因分析:邮箱没有开通POP3/SMTP协议解决方法:1、登录163邮箱,设置客户端授权码选择开启;2、若没有设置过设置一下授权码即可;2、如果还有报错535 Error:authentication failed解决方法:1、用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时1...原创 2018-10-10 16:12:03 · 1042 阅读 · 0 评论 -
selenium2学习(一)--CSS定位
前言大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁。一:css:属性定位1、css可以通过元素的id、class、标签这三个常规属性直接定位,如下:①. css用#号表示id属性,如:id=“kw” 可以写成:#kw②. css用.表示class属性,如:...原创 2018-10-24 17:15:18 · 336 阅读 · 0 评论 -
selenium2学习(二) -- xpath定位
**前言在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到。这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法。**一、xpath:属性定位1、xpath也可以通过元素的id、name、class这些属性定位,如下:①. 用xpath通过id属性定位driver.find_element(By.XPA...原创 2018-10-24 18:05:32 · 452 阅读 · 0 评论