![](https://img-blog.csdnimg.cn/2020080413122352.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python自动化测试-基础
文章平均质量分 63
自动化测试,基于python语言
雨停江南Lujier
一切随缘,一切随心, 不怀疑自我,不违背良心, 那就昂首挺胸往前走就好, 其它就交给上天~
展开
-
5.5 python函数式编程之--返回函数、匿名函数、偏函数(暂时稍微了解即可)
nonlocal声明变量非当前内部函数局部变量,调用外部函数时,每次调用都是一个新的函数对与闭包函数使用, 调用外部函数时,其实并没有执行,直到调用了内部函数才会执行。 内层函数引用外层函数局部变量,如果未赋值可正常执行 内层函数引用外部函数且对外层变量重新赋值,会报错 闭包时:尽量避免在返回函数中引用可变化的变量。原创 2023-07-16 15:16:09 · 207 阅读 · 0 评论 -
5.4 python内置高阶函数之--map、reduce、filter、sorted
了解python高阶用法: map、filter、sorted, 常用的几种原创 2023-07-16 10:57:59 · 292 阅读 · 0 评论 -
5.3 Python高级特性之-列表生成式、生成器、迭代器
Python高阶特性之-列表生成式、生成器、迭代器。原创 2023-07-15 19:15:40 · 1253 阅读 · 0 评论 -
5.2 Python高级特性之---切片&迭代
python高阶知识中: for循环以及切片知识的回归原创 2023-07-15 16:20:14 · 369 阅读 · 0 评论 -
5.1 Python高级特性之递归函数
python-递归函数说明原创 2023-07-15 15:40:58 · 138 阅读 · 0 评论 -
4.2 APP_UI ----Appium工具介绍以及元素定位
一、 Appium自动化四原则:1 没有必要为了自动化而重新编译你的应用或者以任何方式修改它 Android/iOS系统自带框架2 不应该被限制在特定的语言和框架上来编写运行用例 WebDriver API一、 客户端-服务器协议(称为JSON Wire Protocol) http-command3 移动端自动化框架在自动化接口方面不应该重造轮子,find_element\click send_keys WebDriver --- Web浏览自动原创 2020-09-27 11:30:50 · 420 阅读 · 0 评论 -
4.1 APP_UI ---- ADB常用命令以及启动参数说明
一. 移动端自带框架: iOS 9.3 及其以上: 苹果的XCUITest (基本用这个)iOS 9.3及以下: 苹果的UIAutomationAndroid4.2+: 谷歌的UiAutomation (基本用这个)Android2.3+ : 谷歌的Instrumentation(通过绑定另外的项目---- Selendroid Instrumentation的支持) - 不需要把Appium特定的或者第三方的代码编译进你的应用 - 意味着你测试使用...原创 2020-09-27 11:01:59 · 738 阅读 · 0 评论 -
4.0 APP_UI自动化 ----- 环境准备(Windows)
一、Appium 介绍: 开源,跨平台,多语言支持的移动应用自动化工具 测试对象: 原生App 混合(Hybrid) app 移动web app 测试对象APP运行平台:IOS Android Windows FirefoxOS 测试对象APP运行环境:真实设备,模拟器 测试程序语言: Python.Java.Ruby.js,PHP,c# 测试程序运行平台: Windows,Linux,Mac,OS...原创 2020-09-27 10:47:39 · 315 阅读 · 0 评论 -
3.13 Web自动化 --- PO设计思想介绍
一 、 PO 是什么页面对象模型(PO)是一种设计模式,全称(Page Object),用来管理维护一组web元素的对象库 在PO下,应用程序的每一个页面都有一个对应的page class 每一个page class维护着该web页的元素集和操作这些元素的方法 page class中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟, 多用于UI自动化测试(例: Web ,APP等)二、代码结构1. PageObject层页面对象内容同包含: ...原创 2020-09-23 13:39:32 · 1211 阅读 · 0 评论 -
3.12 Web自动化---- 自动化背景与测试流程
一、 自动化测试背景1、 什么是自动化测试? 机器替代手工测试,自动测验结果是否符合预期2、 自动化测试能够带来什么? 替代大量重复性工作,减轻双手工作量 提高回归测试效率,适合敏捷测试 在非工作时间自动执行,工作时间查看测试报告 保证每次测试执行的一致性与正确性,避免人为错误3、 自动化测试劣势? 一般用于回归测试 不能完全替代手工测试 自动化测试环境依赖性较...原创 2020-09-22 05:47:20 · 842 阅读 · 0 评论 -
3.11 Web自动化 --- 鼠标操作、文件上传
一、 鼠标操作1. 引入: 在自动化测试过程中,有些元素不适合直接点击或者进行某些操作时,就可以使用selenium库中的Action类来模拟鼠标操作,通过Action类(java),ActionChains(java)可以发起拖拽,移动等操作,最后使用perform进行执行操作2. 方法介绍:主要操作流程: 1. 存储鼠标操作 2. perform()来执行鼠标操作支持的操作如下: python中用法:...原创 2020-09-22 05:10:04 · 396 阅读 · 0 评论 -
3.10 Web自动化 ---- js修改元素属性、页面滑动
一、 时间日期控件允许输入时间 控件如果没有限制手动输入,则直接可以使用sendKeys(或send_keys)方法写入时间数据 空间有设置限制输入,那么就不能sendKey操作了,需要先js修改元素value属性 如:https://www.12306.cn/index/网站日期输入框1. Window窗口Console控制台修改readOnly属性 仅对本次生效,页面刷新之后,日期空间input就又不允许手动输入了:2. Python代...原创 2020-09-22 02:19:35 · 784 阅读 · 0 评论 -
3.9 Web自动化 --- radio单选、checkbox多选、select下拉框
一、 radio 单选按钮和checkbox多选按钮 1. 概述: radio单选按钮: 允许用户多选一: 在多个选项中,仅允许选择一个(type=radio) checkbox多选按钮: 支持在多个选项中多选择(type=checkbox) 2 . 操作方法: 跟普通元素定位一样,定位选择框,点击选择 查看当前选项是否被选择,可以用如下方法 ele.is...原创 2020-09-18 14:55:14 · 2288 阅读 · 0 评论 -
3.8 Web自动化 ----- Alert、Window、Iframe切换
一、 对话框1. 概述 是指用户想要对对话框以外的应用程序操作时,必须先对对话框进行响应,如单击【确定】或【取消】按钮将该对话框关闭2. 对话框分类 1) alert警告框 2) confirm确认框 3) 通过div显示在页面最上层的内容3. 对话框的操作 1) alert,confirm等对话框的操作 当要操作页面上的alert警告框时,必须先获取到此alert警告框 ...原创 2020-09-17 14:06:50 · 271 阅读 · 0 评论 -
3.7 Web自动化 --- 元素三大等待方式
一、死等,硬等待 -- sleep 1. python用法 参数以秒为单位import timetime.sleep(3)2. java用法 参数以毫秒为单位Thread.sleep(3000);3. 优点缺点 1) 优点: 使用简单 2) 缺点: 无论元素是否找到,都会等待所设置的时间,容易造成时间浪费二、 隐式等待 --- implicityWait()1. python用...原创 2020-09-15 19:42:28 · 534 阅读 · 0 评论 -
3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)
一、 WebElement对象API常用API1. 常用基本API2. 键盘输入操作3. python代码练习import timefrom SeleniumWeb import openBrowserfrom selenium.webdriver.common.by import By# 键盘使用from selenium.webdriver.common.keys import Keysdriver = openBrowser.openBrowser("Chrom.原创 2020-09-15 16:09:28 · 302 阅读 · 0 评论 -
2. 13 Python 之接口请求发送(依赖Session)
接上一节: 2.12python 发送request请求方法封装(依赖requests)在上一节,最后提出requests.method发送请求是不会自动保留cookies信息,那么充值必须需要登录才可以,所以解决方式有2种:1. 手动解决: 提取cookies信息,下一个充值接口发送请求时,手动传递cookies2. 自动保存cookies,用作下一个接口:Session发送请求,如下截图代码:Session发送请求方法封装(参考上一节2.12)...原创 2020-09-14 11:54:44 · 378 阅读 · 0 评论 -
2.12 python 发送request请求方法封装(依赖requests)
import loggingimport requestsfrom requests import Sessionclass MyRequest: def sendRequest(self, url, method, params=None, data=None, headers=None, json=None, cookies=None,timeout=10): ''' :param url: 接口请求地址 .原创 2020-09-14 10:59:58 · 2283 阅读 · 0 评论 -
3.5 WEB自动化 --- Xpath定位方式
一、 Xpath(XML Path Language)相关概念 是W3c定义的用来在XML文档中选择节点的语言主流浏览器也支持Xpath对于浏览器原声支持XPATH,Selenium尽量使用原声的Xpath实现,有些浏览器也支持Xpath访问xpath的语法类似与电脑文件系统的路径二、 绝对定位与相对定位绝对定位: 从根目录开始,以“/”开头,严格按照层级,同级元素位置: 太死,容错性差相对定位: 不依靠位置和层级,只需要一个参照物,根据这个参照物,来确定指定元素的位置...原创 2020-09-11 19:55:33 · 549 阅读 · 0 评论 -
3.4 WEB自动化 ---- CSS方式定位元素
一、 常用元素定位表达式二、如何判断当前元素的css 元素定位内容对不对1). 快捷键: CTRL+F 然后在搜索框内内容输入定位元素的内容,查看位置是否是预想中的位置2) . console中进行查询:$$("input[name='wd']") 然后回车即可...原创 2020-09-11 19:37:10 · 258 阅读 · 0 评论 -
3.3 Web自动化 ---- 元素定位(基本定位方式)
常见元素定位方式: 通过id(一般id唯一) : By.id 通过元素name属性来定位: By.name 通过元素标签名来获取元素: By.tagName 通过元素class属性值来定位: By.className 通过元素超链接的文本值来获取元素: By.linkText 通过元素超链接的部分文本值来获取元素: By.partialLinkText...原创 2020-09-11 11:35:02 · 1264 阅读 · 0 评论 -
3.2 WEB自动化UI ------ selenium自动化工作原理以及环境准备
介绍 Selenium IDE 是一个Firefox/Chrome插件,用于记录和回放用户与浏览器的交互,使用它来创建简单的脚本和协助进行探索性测试。安装: 下载地址: https://www.selenium.dev/downloads/...原创 2020-09-10 18:23:44 · 345 阅读 · 0 评论 -
3. 1 WEB自动化 --- WEB前端知识简介
前端前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页和界面。前端开发中最基本也是最必须的三个技能。前端的开发中,在页面的布局时,HTML:页面结构:可以把他看成一个文档,定义展示页面的内容结构。CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果。JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能一、HTMLHTML: 超文本标记语言,是 网页制作必备的编程语言**“**[超文本]HTML 版本**HTML 2.0 :**是原创 2020-09-08 18:10:52 · 1977 阅读 · 0 评论 -
2.11 python发送邮件(带附件)
# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/7/29E-mail: 2327994109@qq.com=========================================="""import smtplibfrom...原创 2019-07-29 16:59:01 · 236 阅读 · 0 评论 -
2.10 python发送邮件(不带附件)
# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/7/29E-mail: 2327994109@qq.com=========================================="""import smtplibfrom...原创 2019-07-29 16:52:08 · 166 阅读 · 0 评论 -
3.2 unittest框架 -- ddt数据驱动的引入
第二篇上一节的内容,我们在进行注册函数的逻辑测试时,写了6个测试函数,我们发现所有测试函数中只有data和expect_result不一样,其他内容都一样,那我们就想想函数的作用是什么?是实现一个功能,当不同参数函数的结果也不一样时,那我们就可以将这些参数可以作为函数参数传入如上一节内容,既然只有data和expect_result不一样,那么我们就可以1. 将所有的测试数据存...原创 2019-07-29 16:36:55 · 362 阅读 · 0 评论 -
3.1 unittest框架 -- 基本应用
unittest是Python自带的单元测试框架,在unittest库中,它自己封装 一些校验返回的结果方法和一些用例执行前的初始化操作接下来,我们需要了解下unittest的几个概念:1. TestCase 也就是测试用例2. TestSuite多个测试用例集合在一起,就是TestSuite3. TestLoader是用来加载TestCase到TestSuite中的...原创 2019-06-13 22:19:42 · 219 阅读 · 0 评论 -
2.14 python中re常用方法
# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/10/18E-mail: 2327994109@qq.com=========================================="""# re知识点import re# a = "aaaaddn122xmvsmcnas13221099612ascz15934815828xcv.原创 2020-08-04 13:50:05 · 227 阅读 · 0 评论 -
2.13 python实现MD5加密
代码如下:# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/10/16E-mail: 2327994109@qq.com=========================================="""import hashlibclass MyHash: """md5加密,方便用户登录&设置密码时使用"""原创 2020-08-04 13:46:11 · 196 阅读 · 0 评论 -
2.12 python实现邮件发送
1. 配置文件包含:2. 发送邮件代码内容如下: (此处实现的是: 发送给多人多附件)import timeimport smtplibfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationfro...原创 2020-08-04 13:37:18 · 174 阅读 · 0 评论 -
2.9 python连接Redis数据库
直接贴代码,如下:# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/6/14E-mail: 2327994109@qq.com=========================================="""import p...原创 2019-07-29 15:32:15 · 159 阅读 · 0 评论 -
2.8 python连接mysql数据库
第一步: pip install pymysql第二步: 如下是连接数据库代码:import pymysqlclass ConnectDatabase: # 封装一个数据库类 # 用于数据库查询/删除/更新/插入 def __init__(self, host="xxx.xx.xx.xx", # 数据库地址 ...原创 2019-07-29 15:26:18 · 193 阅读 · 0 评论 -
2.7 日志logging类封装
直接扔代码,自己看咯,都有注释:1. 配置文件中,存放日志相关信息: 等级,渠道(日志保存在文件中还是输出在控制台),日志文件名称,测试人员信息,如下:2. 自定义日志类from common.read_config import *import logging"""获取日志配置信息"""log_set = my_config.read_data_by_one_section_n...原创 2019-07-29 15:18:21 · 183 阅读 · 0 评论 -
2.6 python读写配置文件_configparser
python配置文件,一般包含文件后缀名是: .ini , .conf, .cfg读写配置文件前,需要先导入: import configparse 1. 先创建一个stuinfo.conf配置文件,内容如下:[name]zhangsan=张三lisi = 李四[Age]lisi=18zhangsan=19[sex]lisi= malezhangs...原创 2019-07-06 16:01:17 · 409 阅读 · 0 评论 -
2.5 openpyxl读写Excel文件类封装
首先,我们需要先理解下,为什么要将读、写文件操作需要配封装到一个类中,通过上一节的内容,我们可以得知如果要进行对Excel工作薄指定表单 (sheet)进行读写操作时,都需要先打开工作薄,再选择某个表单,如下是上一节的内容部分截图: 那我们工作中,比如说,会需要读取Excel文件中的某个表单sheet,往往我们需要从不同的Excel或者不同的sheet页中读写数据,那如果我们不封装成...原创 2019-05-31 15:17:00 · 571 阅读 · 0 评论 -
2.4 python之openpyxl进行Excel文件读写操作
一. openpyxl安装: pip install openpyxl二. openpyxl操作Excel文件 1. 先导入openpyxl: importopenpyxl 2. 常用方法: 1) 创建工作薄&创建sheet表单,删除表单并保存工作薄: workbook.create_sheet('sh...原创 2019-05-26 21:22:46 · 452 阅读 · 0 评论 -
2.3 python常用魔术方法的使用
在Python中,所有以__双下划线包起来的方法,都统称为"魔术方法"在之前的接触中,我们有见过__init__,当然也是很常见的,除了__init__,我们也要了解下__new__,__del__,__getattribute__,__getattr__,__setattr__,__delattr__class Stu: def __init__(self, stu_no, s...原创 2019-05-26 20:05:12 · 186 阅读 · 0 评论 -
2.2 类方法、静态方法、继承、重写
上一节介绍了类、对象、类属性、实例属性的概念以及类属性,实例属性,实例方法的调用这一节,我们学习类方法、静态方法、类继承、类重写以及实际中的应用上节课,我们定义了一个People类:# -*-coding:utf8-*-"""=========================================author: Lujier time: 2019/5/2...原创 2019-05-26 16:57:57 · 188 阅读 · 0 评论 -
2.1 类、对象、类属性、实例属性
这一节,主要是针对类、对象、类属性、实例属性的一个简单说明1. 概念:1) 类:是具有共同属性以及共同行为的一类事务,是一个集合2) 对象:就是具体到某类的个体,,是类事物的具体存在,是真实存在的(也就是平时所说的类的实例化)3)类属性:这个类的共同特征,定义在类的变量和方法4)实例属性: 对象自己的属性和方法5)__init__函数: 一般用于对对象进行初始化设置,一般用户定义类的共...原创 2019-05-26 14:31:15 · 653 阅读 · 0 评论 -
1.21 python异常处理
在之前的学习中,我们也有遇到一些问题,比如,列表下标访问越界、除数为0、文件找不到、变量没有被定义等等这些异常问题当出现异常的时候,发生异常之后的程序代码因受其影响而不会继续往下执行,那么我们怎么可以在发生异常后而不影响后边代码的执行呢?本节课就用到try_except可以解决这个问题1. 异常的概念: 代码运行过程中出现的错误2. 常见异常基类:|3. try …exc...原创 2019-05-14 20:30:10 · 118 阅读 · 0 评论