- 博客(41)
- 收藏
- 关注
原创 1.测试框架开发
POM(Page Object Model) 页面对象模型 有的人也会说PO(Page Object)模式。本质就是用一个页面对象模型(python里面是类)来管理维护一组页面元素的对象库。在PO下,应用程序的每一个页面都有一个对应的Page类。每一个Page类维护着该页面的元素集和操作这些元素的方法.原来我们的项目是断言和业务分离,但是我们的元素,元素的操作方法以及case流程都写在一个函数内部。后期如果页面元素定位改变,我们需要找到case中这一块内容进行更改。如果多个函数调用到这个元素。那么就要多处更
2022-12-05 14:53:16 775 1
原创 2.airtest
安装去官网http://airtest.netease.com/changelog.html下载最新安装包[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5VFCBPsT-1670222985309)(https://woniumd.oss-cn-hangzhou.aliyuncs.com/test/zhangjing/20201219143046.png)]下载到本地后解压缩 目录下别有中文,最好直接解压到D盘下即可成功启动 启动成功后页面如下[外链图片转存失败,源站可能有
2022-12-05 14:50:25 2548
原创 1.appium
Appium是一个移动端的UI自动化测试框架(类似于selenium),可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,其官方网站为http://appium.io。可用于I0S和Android等移动操作系统。原生的应用是指用 Android或IOS的SDK编写的应用,移动网页应用是指 WebApp应用(H5应用),混合应用是指一种包裹了 webview控件的原生应用,具备Web页面的便捷与通用性,又具备原生应用的强大功能,也是目前使用频率比较高的应用类型。另外, Appium是跨平台的,可以
2022-12-05 14:49:58 741
原创 2.性能优化
单体应用架构集群架构(分布式)微服务架构3.性能优化实施3.1 部署集群环境1. 为什么需要服务器集群随着网站访问量的日益增大,传统的单一web 应用实例部署方式,已完全无法满足高并发的需求,性能出现瓶颈。这个时候我们如何去优化我们的项目。第一个点就是提高我们的硬件。但是硬件也有瓶颈。所以我们还得知道集群化部署。集群部署即一个应用多个实例部署,通过负载均衡将客户端高并发请求分散到集群部署的多个实例中去,实例处理完客户端请求,将结果再返回给客户端;集群部署的服务器对外提供统一的访问接口,后端的
2022-12-05 14:49:03 229
原创 1.性能测试项目实战
性能测试本身不是目的,任何一种测试类型,其核心目的都是为了发现系统存在的问题并及时修复以确保系统能够稳定运行,能够正常处理业务,能够提供给用户一个更好的使用体验,能够让客户对系统产生信心,能够成功交付运行。所以,通常情况下,我们为系统进行性能测试,主要目的是评估以下一些关注点是否满足要求[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ecU97yqa-1670222852673)(https://woniumd.oss-cn-hangzhou.aliyuncs.com/test
2022-12-05 14:48:36 1218
原创 2.jmeter使用
概念:根据需求动态获取数据并进行赋值的过程集合点用以同步虚拟用户,以便恰好在同一时刻执行任务。概念:从上一条请求中获取数据,使用在下一条请求中的过程。WEB系统主要分为客户端和服务器端。客户端的主要载体就是浏览器,相对比较简单,而服务器端则架构要复杂得多,使用到的技术也更加复杂。但是,最终用户在使用的时候是一直在与浏览器打交道,用户不关心我们的服务器端到底使用了怎么样的技术和架构。
2022-11-29 17:11:41 1018
原创 1.性能测试理论
观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致验证系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能的完整的过程。本质就是模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。目的是为了通过技术手段查找出多用户多并发时系统存在的性能问题,来提升用户体验。其实就是通过工具或者代码模拟大量用户实现对服务器的并发访问 来查找出系统可能存在的性能瓶颈。
2022-11-29 17:05:00 664
原创 6.Requests + Unittest 接口自动化测试
SOA架构:面向服务架构。将传统的单一大型服务,强耦合的系统,划分成面向业务的,松耦合,无状态的系统,这些系统之间相互调用,构成了SOA系统。做了两件事:1. 找出原有系统中可重用的部分;2:将这些可重用的部分组合、编排形成业务服务。RESTful是SOA的一种实现。概念:表现层状态转化。
2022-11-29 16:56:53 214
原创 5.requests
是一个Python的HTTP库,用于发送HTTP请求,获取相应。主要用于测试服务端的响应,爬虫功能。构建一个headers字典,传递给headers参数import requests if __name__ == '__main__' : url = 'http://xawn.f3322.net:8060/woniusales/' # 构建一个请求头的字典,然后传给headers关键字参数 h = {
2022-11-29 16:55:03 268
原创 4.抓包工具
(img-Nzi4Gggv-1669186312962)]负载(Payload标签):查看请求参数(查询参数和请求正文)(img-4A2LzK1H-1669186312962)]请求头(Headers标签):查看请求头部和响应头部信息。响应(response标签):查看原始相应内容。预览(preview标签):查看预览响应内容。请求详情-headers-general。查看请求cookies。
2022-11-29 15:36:52 347
原创 UI自动化测试03
一、警告框处理<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>警告窗口操作</title> <script type="text/javascript"> // JavaScript一些函数 // 定义了一个函数 functi
2022-11-23 11:35:11 550
原创 UI自动化测试02
隐式等待,指针之后的页面所有内容都有效,上面写了10,指的是10s,判断如果某个元素没有加载出来,最大超时时间是10s,显示等待设置的时候,需要是给每一个元素单独设置,偶尔有个元素由于业务需要加载时间比较长,则可以给其单独设置显示等待。句柄就类似于每一个标签页的id一样,是唯一的。submit:可以用于表单的提交,可以在某些时候达到和click互换的效果。time.sleep(4) 这个是python中自带的日期时间模块完成的。为了解决页面加载太慢,而代码执行过快,元素定位不到的问题。
2022-11-23 11:34:24 576
原创 UI自动化测试01
使用UI自动化测试就是用代码模拟人的操作(点击、输入、滑动、下拉选择、浏览)web 网站QTP、seleniumpc端软件用的少移动端appium用于完成web网页自动化测试,selenium(化学元素:硒), 不得不提QTP的工具,2004年左右开始出现,qtp(汞)收费的,不开源,所以就使用成本比较高,硒可以解汞的毒2016年出现的这个版本,selenium IDE:提供了将操作转换为代码的功能,会记录人的动作,转换为selenium代码selenium webdriver: 提供了控制浏览器执行的功能
2022-11-23 11:30:36 253
原创 python高级3
通过列表生成式(列表推导式),我们可以创建一个列表,但是,受到内存限制,列表容量肯定是受限的。而且创建一个包含上百万个元素的列表,不仅占用很大的存储空间,如果我们只需要访问前面几个元素,那么后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推荐出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?在python中,这种一边循环一边计算的机制,成为生成器(generator)可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。生成器就是一个迭代器。
2022-11-23 11:24:28 61
原创 Python基础08
open方法如果不指定读取方式,则就是读模式 r案例1:读取文件内容,查看文件指针{.()}{.()}案例2:移动文件指针,读取内容{.()}{.()}注意:在windows操作系统中 换行 实际包含两个操作 分别是回车和换行案例3:readlines() readline()r+ 模块,可读可写,文件不存在不会创建,文件指针在左上角第一行开始位置,写入的时候,要注意文件指针,不然会覆盖原内容w:只能写入内容,会将原文件所有内容覆盖掉,如果写入的文件不存在,则会创建该文件,然后写入内容。
2022-11-22 16:23:26 337
原创 Python基础04
语法:函数名的命名规则和变量;类似其次函数的形参,可以定义也不定义,根据实际需求def 函数名(形参) : 函数体(实现函数功能的代码)# 函数的定义 # 函数要先定义在调用 # 函数体中代码是缩进显示的,缩进也是建议的四个空格 # 函数可以减少代码的冗余(重复) # 一个函数可以多次调用 # 定义了一个函数 def add() : c = 3 * 4 print(f"c的值为: {c } ") # 函数调用 add() add(){
2022-11-22 16:19:55 236
原创 Python基础03
idx = 0idx = 0idx = 0 while idx < len(str1) : # 根据下标取值 print(str1 [ idx ]) # 循环一次给循环加一 idx += 1。
2022-11-22 16:18:45 132
原创 Python基础02
字符串定义:给某个单词或者数字加上了引号,那么该内容就是字符串 """定义字符串的时候可以有:单引号、双引号、三引号(三个单引号或者三个双引号)
2022-11-22 16:16:35 223
原创 Linux操作系统
1>/dev/null 2>&1的解释就是将stdout标准输出重定向到空设备文件/dev/null ,同时将stderr标准错误输出的重定向跟stdout标准输出重定向一致,也输出到空设备文件/dev/null。db_url: 数据库的连接地址,localhost这个是tomcat去访问的数据库的主机地址,3306是数据库监听的端口,woniusales是我们创建的数据库的名字。mv(move): 把文件移动到指定位置,同时也可以实现改名,在同一个目录下面移动,或者移动到其他目录的时候没有同名的目录。
2022-11-22 16:13:53 664
原创 3.MySQL高阶概念
变量:用来保存数据的符号。name=‘tester’,name=‘1234’存储过程是一段完成指定功能的SQL语句的集合。1、存储过程和函数【了解】怎么实现一个存储过程或函数。在存储过程的外面或者内部。只能在存储过程的内部使用。2、事务**【重点】**
2022-11-22 16:09:05 175
原创 1.数据库基础
.* 代表所有的数据库中的所有对象。1、给原来的表加上非空、默认值约束,注意分析哪些字段需要非空,哪些字段需要默认值。可以给字段设置默认值,当插入数据的时候,如果没有给字段赋值,就会自动使用默认值。* 代表返回数据表中的所有字段,如果需要返回具体的字段,需要使用字段名替换*1、左外右外:数据匹配的多少,如果没有多出来的部分就看不到null的部分。1、左外右外:数据匹配的多少,如果没有多出来的部分就看不到null的部分。别名的作用:把复杂的表达式简单化,将子查询的返回的数据作为表使用。
2022-11-22 16:07:44 306
原创 4.缺陷管理流程
探索测试:在随机测试的基础上,预先制定一些目标,然后围绕这个目标进行有规范随机测试。3. 概要设计:在设计阶段把各项需求转换为技术系统结构的过程。4. 详细设计:对每个模块要完成的工作进行具体的描述。4. 回归测试:把原来执行过的用例再执行一遍。
2022-11-22 16:06:27 456
原创 3.用例设计第二天
学了六个方法:等价类、边界值、流程分析法、状态迁移法、正交实验法、错误猜测法 还有两个方法:判定表法、因果图法1. 等价类、边界值针对输入域,这两个方法一起用。横向覆盖2. 流程分析法针对业务流程或算法,我们测试最终的对象算法,尤其是功能测试中。纵向覆盖3. 正交实验法:针对均匀分散、整齐可比的测试对象4. 状态迁移法:被测对象状态比较多,且互相之间的迁移比较复杂。5. 错误猜测法:根据测试工程师的经验来使用,备胎方法。猜测法 还有两个方法:判定表法、因果图法。
2022-11-22 16:04:29 203
原创 2.系统测试流程规范
中学的教学软件提供一个功能,用户可以输入三个数,系统会校验这三个数,如果是正数,判断是否能够构成三角形,否则提示输入有误,如果能够构成三角形,则判断是否构成等边三角形,如果构成则提示:构成等边三角形,否则判断是否构成等腰三角形,如果构成则提示:构成等腰三角形,否则提示:构成一般三角形,如果不能构成三角形,则提示不能构成三角形。如果输入条件规定了一个取值范围(例如,“数量可以是1到999”),那么就应确定出一个有效等价类(1
2022-11-22 15:58:46 505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人