自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 软件开发流程与项目管理

软件开发流程开发和测试一定是并行过程软件开发流程的演变传统瀑布模型 ---- 敏捷开发模型 ----DevOps开发模型瀑布模型:1,软件开发的各项活动严格按照线性方式进行2,当前活动接受上一项活动的工作结果3,当前活动的工作结果需要进行验证优点:1,开发的各个阶段比较清晰2,强调早期计划及需求调查3,适合需求稳定的产品开发缺点:1,由于开发模型是线性的,增加了开发的风险2,早期的错误可能要等到开发后期才会被发现敏捷开发模型:XP:极限编程 —小型项目SCRUM测试

2022-03-30 17:56:47 824

原创 参数化用例和数据驱动

pytest数据参数化,需要两个变量,name、values@pytest.mark.parametrize(argnames, argvalues)argnames:参数化的变量,string(逗号分隔),list,tupleargvalues:参数化的值,list,list[tuple]"""@Time :2021/11/8 12:49@Author :Wesley@File :demo_a.PY"""import pytestclass TestData: @

2021-11-11 16:43:27 699

原创 Failed to load response data

Failed to load response data:no data found for resource with given identifier加载响应数据失败,没有为标识找到数据请求无状态码,表示没有请求到后台的资源解决:将前端请求的超时时间设置长一些

2021-11-09 09:20:05 4398

原创 pytest框架

pytest框架单元测试框架测试用例的skip,xfail,自动失败重试支持第三方插件,alluer测试报告,xdist多cpu分发Jenkins集成测试用例的识别与运行测试文件:test_.py ,test.py用例识别:类 Test 没有含有init函数,认为有特殊功能的类方法 test*不在class类中的,test_*pytest也可以执行unittest框架写的用例方法pytest 解释器python解释器,需要添加入口函数 main"""@Time :

2021-11-01 13:09:35 100

原创 unittest框架

单元测试白盒测试–开发进行测试,很少去做,迭代很快,不会做去代码层面的测试单元测试的思想:单元测试框架:unittest,pytest,nose,mock输入输出的思想uniitest 和 pytestunittest 内置函数单元测试的覆盖率:指标:代码覆盖率单元测试覆盖类型:语句覆盖,条件覆盖,判断覆盖,路径覆盖语句覆盖:每行代码会被执行一遍判断覆盖:每一个判断的测试 T or F条件覆盖:每一个条件的测试 T or F ,测试用例的用例太多的路径覆盖:覆盖所有可能的路径

2021-10-30 17:59:25 69

原创 安全测试appscan

安全测试安全漏洞:客户端/前端:钓鱼,暗链,xss,点击挟持,CSRF,URL跳转钓鱼:跟网站很相似的网站,吸引用户登录,输入敏感信息,获取用户登录密码等暗链:看不见的网站链接,短时间不易被搜索引擎察觉xss:跨站脚本攻击,往web网页插入恶意html代码,当用户浏览,会被执行点击挟持:1,使用透明的iframe框架覆盖在网页上,诱导点击;2,使用图片覆盖在网页上原有的位置CSRF:攻击者盗用身份进行发送恶意请求URL跳转:url跳转漏洞的页面服务端/后端:sql注入,命令注入,文件上

2021-10-27 16:51:19 2962

原创 python简单脚本01

“”"回合制游戏每个角色都有hp和power,hp代表血量,power代表攻击力hp的初始值未1000,power的初始值为200。定义一个fight方法my_final_hp = my_hp - enemy_powerenemy_final_hp = enemy_hp - my_power两个hp进行对比,血量剩余多的人获胜函数循环/判断三母运算类型提示“”""""@Time :2021/10/26 20:25@Author :Wesley@File :demo_a

2021-10-26 21:09:09 188 1

原创 git使用

git介绍git是一个控制代码版本的工具,一个系统github是一个网站,全球存放代码的一个大仓库 用git作为工具进行一系列操作gitlab一般是公司的 githubgit和svn都可以管理源代码,区别是git是分布式版本控制系统,svn是集中式版本控制系统git下载安装git直接在官网进行下载,默认安装(默认添加环境变量)验证安装:dos窗口:git --versionWindows下搜索 gitbashgithub注册在github官网注册账号,并且登录git配置1,生成s

2021-10-26 13:11:34 101

原创 python源文件处理

""""""python 源文件处理Yaml可读性高,用来表达数据序列化的格式,常用作配置文件使用Json轻量级的数据交换语言,易于阅读,传输由属性值或序列性的值组成的数据对象Excel"""from openpyxl import Workbookfrom openpyxl.utils import get_column_letter"""python-Excelopenpyxl"""wb = Workbook()dest_filename = "empty_book.

2021-10-25 12:40:20 87

原创 python多进程处理

import threadingdef task1(): print("扔第二个苹果")def task2(): print("扔第三个苹果")def main(): # threading.Thread 创建一个线程 thread1 = threading.Thread(target=task1()) # 让线程执行 thread1.start() thread2 = threading.Thread(target=task2()

2021-10-24 21:55:30 100

原创 python常用的标准库

操作系统相关 os"""os模块主要是对文件或者目录的操作常用方法:os.mkdir() 创建目录os.removedirs() 删除文件os.getcwd() 获取当前目录os.path.exists(dir or flie) 判断文件或者目录是否存在"""import os# os.mkdir("testdir")print(os.listdir("./")) # 当前的目录和文件# os.removedirs("testdir") # 删除文件prin

2021-10-24 21:15:15 92

原创 python面向对象

“”"PYTHON 面向对象编程 java c c++面向对象类,方法,类变量的定义实例引用 实例变量使用======两种编程思想面向过程:把大象装进冰箱一种以过程为中心的编程思想简单的事情面向对象:造汽车把每个事情都作为一个类别一种更符合我们人类思维习惯的编程思维面向对象开发就是不断的创建对象,使用对象,操作对象做事情复杂的事情语言层面:封装代码和数据规格层面:对象是一系列可以被使用的公共接口概念层面:对象是某种拥有责任的抽象—面向对象程序设计规则1,分析有哪些类2,

2021-10-24 20:17:22 68

原创 python异常与错误

"""python 错误与异常异常可以被开发人员捕捉和处理,拼写,配置,选项,处理逻辑的漏洞错误一般是系统错误,不需要开发人员处理,eg:内存溢出语法错误与定位异常捕获 异常处理自定义异常""""""try: 执行代码except: 发生异常时执行的代码else: 没有异常时执行的代码finally: 不管有没有异常都会执行的代码"""try: num1 = int(input('除数')) num2 = int(input('

2021-10-24 19:25:07 1334

原创 python输入与输出

python输入与输出:字面量打印与格式化文件读取json格式转换字面量打印与格式化'''-------字面量字面量是以变量或常量给出的原始数据’在程序中可以直接使用字面量-------字面量的类型数值型字符型布尔型字面量集合:列表,元组,字典,集合特殊字面量:none----------字面量插值字面量插值就是将变量,常量以及表达式插入的一种技术可以避免字符串拼接的问题----字面量插值方法:格式化输出string.format()方法拼接、Formatted

2021-10-24 19:06:07 1073

原创 python模块

python的程序结构组成:包模块方法-----模块导入import 模块名from 模块名 import 方法,变量,类from 模块 import * 所有都导入-----模块分类系统内置模块 time os re sys json第三方的开源模块 pip install 安装的模块自定义模块----------常用方法定位问题的时候dir() 找到当前模块定义的对象dir()找到参数模块定义的对象sys.path搜索路径python解释器对模块位置的搜索顺序包

2021-10-23 00:20:50 86

原创 python常用数据结构

列表python中可以通过组合一些值得到多种复合数据类型列表是其中最常用的数据结构列表通过方括号括起来,逗号分隔的一组值一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同"""list.append(x)在列表的末尾添加一个元素。相当于a[len(a):] = [x]"""list_a = [1, "a", 2]list_a.append(3)list_a.append(4)list_a.append(5)print(list_a)[1, 'a', 2, 3, 4, 5

2021-10-22 23:41:29 96

原创 python函数

函数的定义,调用函数的各类参数lambda表达式函数的作用:封装函数是组织好的,可以重复利用,用来实现单一,或相关联功能的代码段函数能提高应用的模块性,代码的重复利用率"""函数的定义函数代码块 以def 关键词开头,后接函数名称和圆括号()注意点:冒号起始注意缩进圆括号中定义参数函数说明----文档字符串return【表达式】 结束函数选择性地返回一个值给调用方不带表达式的return或者不写return函数,相当于返回none"""def function_a

2021-10-22 21:35:22 84

原创 python控制流语法

python分支结构python循环结构顺序结构:一条一条语句执行分支结构:某个判断条件后, 选择一条分支去执行 python分支结构# 关键字:# if# elif# else 都不满足的时候执行 # 缩进# 如果if条件成立的情况下需要执行多条语句,只要保持# 多条语句具有相同的缩进就可以了# 分支结构a = 2if a == 1: print('a==1')else: print('a!=1')#循环结构a = 0.1if a == 1:

2021-10-21 22:01:23 67

原创 python基本数据类型与操作

变量数字字符串列表变量变量是一种存储数据的载体计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间变量的值可以被读取和修改命名规则1,变量名由字母,数字,下划线构成,数字不能开头2,大小写敏感3,不要跟关键字和系统保留字冲突常见的数字类型int 整型float 数学中的小数类型常用运算符赋值 =等于 ==不等于 !=加减乘除 + - * /取余 %乘方 **修改运算优先级 ()# 字符串使用单双引号进行定义str_a = 'abc123@!

2021-10-21 21:22:10 116

原创 python环境管理与pip依赖

python3.x 未来的语言假如安装了python2.7版本的,同时安装了python3.7.3可以在3.7.3的安装目录下,将python.exe 改为python37.exe即可在dos窗口在直接使用python37进行python3.7.3命令行模式python手动添加环境变量把python的安装路径放在系统变量path下python安装验证C:\Users\xxx>pythonPython 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23

2021-10-20 22:18:31 347

原创 PageObjects演练

PO模式:分层思想from selenium import webdriverfrom selenium.webdriver.remote.webdriver import WebDriverclass BasePage: _base_url = '' def __init__(self, driver: WebDriver = None): # 初始化 driver: webdriver python中的标记,标识符 ->bool :反馈类型为布尔值

2021-10-20 21:02:37 84

原创 文件上传弹框处理

文件上传文件上传 input标签直接使用sendkeysfrom time import sleepfrom selenium_webui.selenium_js.base import Base# input框可以直接用sendkeysclass TestFile(Base): def test_file(self): self.driver.get('https://image.baidu.com/') self.driver.find_el.

2021-10-19 21:32:20 404

原创 selenium执行js脚本

直接使用js操作页面,能解决很多click()不失效的问题页面滚动到底部,顶部处理富文本,时间控件的输入js定位元素,滚动execute_script 执行jsreturn 可以返回js的返回结果from time import sleepfrom selenium_webui.selenium_js.base import Baseclass TestJS(Base): def test_js_scroll(self): self.driver.get(

2021-10-19 21:20:34 121

原创 selenium多浏览器处理

from selenium import webdriverimport osclass Base: def setup(self): browser = os.getenv('browser') if browser == 'firefox': self.driver = webdriver.Firefox() elif browser == 'headless': self.driver =

2021-10-19 20:54:36 92

原创 WEB控件定位

from selenium import webdriverfrom selenium.webdriver.common.by import Byclass TestWait: def setup(self): self.driver = webdriver.Chrome() self.driver.get('https://www.baidu.com/') def teardown(self): self.driver.q...

2021-10-19 20:38:55 68

原创 多窗口处理与网页frame

selenium处理多窗口场景多个窗口识别多个窗口之间切换获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个窗口下切换1,获取当前的窗口句柄 driver.current_window_handle2,获取所有的窗口句柄 driver.window_handles3,切换窗口 driver.switch_to_window 加索引值from time import sleepfrom selenium_webui.selenium_iframe_windows.base i.

2021-10-19 20:14:49 123

原创 WEB控件的交互进阶

常见的操作事件:右键点击,页面滑动,表单操作ActionChains :执行PC端的鼠标点击,双击,右键,拖拽等动作TouchActions:模拟PC端和移动端的点击,滑动,拖拽,多点触控等多种手势的操作动作链接ActionChains执行原理:调用ActionChains的方法时,不会立即执行,而是将所有的操作,按照顺序存放在一个队列里,当调用perform()方法时,队列中的时间才会一次执行基本用法action = ActionChains(driver)生成一个动作action.方法

2021-10-19 18:10:25 124

原创 selenium 三种等待方式

sleep 线性等待 (强制等待)implicitly_wait 隐式等待:全局等待,自动轮询查找(默认0.5秒)WebDriverWait 显式等待:针对某个具体操作的元素,结合 until 和until not使用import timefrom selenium import webdriverfrom selenium.webdriver.common import byfrom selenium.webdriver.common.by import Byfrom selenium.

2021-10-18 22:11:20 139

原创 selenium用例编写(简单脚本)

import time # 导入时间模块from selenium import webdriver # 导入webdriver模块from time import sleep # 导入sleepclass TestCSDN: def setup(self): # setup函数会在每个testcase执行前先跑一遍,初始化环境 self.driver = webdriver.Chrome() # 浏览器驱动 self.driver.maxi

2021-10-18 21:44:12 252

原创 selenium IDE 使用

selenium IDE的下载,安装,启动,使用#selenium IDE 的下载Chrome插件链接:https://www.extfans.com/web-development/mooikfkahbdckldjjndioackbalphokd/谷歌浏览器插件下载安装#selenium IDE 启动

2021-10-18 21:15:08 63

原创 selenium的安装

#目录##selenium简介##selenium安装##driver配置###selenium简介selenium支持web浏览器的自动化,主要由三个工具构成:webdriver,ide,gridwebdriver使用浏览器提供的api来控制浏览器,模拟用户的操作ide是扩展插件,录制用户在浏览器的操作grid主要是用于分布式,多个浏览器进行操作客户端使用python等语言,编写selenium脚本将脚本传送给selenium服务器,服务器通过浏览器驱动不同的浏览器使用不同的dr

2021-10-18 20:33:21 123

原创 通用测试表单域

通用测试表单***:文本输入框数值型输入框增加编辑多行文本框单选框复选框下拉选择框文件上传框提交按钮邮箱输入框

2021-10-18 15:03:19 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除