自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UI自动化接口

法点击报错的现象,确保用例执行的准确性,因为有时候用例执行太快,而网页加载太慢会?第4层就是testcase用例层了,这个里面主要就是通过定义一个类然后继承unittest.TestCase这个类,通过unittest单元测试框架来管理用例,在setupclass里面去创建driver对象,然后通过设置和取值的方法,拿到driver对象,先编写登录的用例,然后这个里面也用到了PO设计模式,把我们的元素定位和流程层,代码层进行了分离,最后用例写完再通过self.assertEquals进行一个断言。

2025-01-21 10:23:59 854

原创 接口自动化

def send(self,method,url,data=None,json=None,params=None,headers=None):#初始化方法,创建一个 requests Session 对象,用来保持 HTTP 会话,这样可以在同一个会话中发送多个请求。第2层是data数据层,这个里面主要放的是接口的用例,把接口的入参,接口的路径,接口的编号,请求方法都放在这个里面了,一个接口放在一个sheet页面里面,然后一个sheet页面里面有多个接口测试用例,有正常场景的也有多个异常场景的。

2025-01-21 10:23:25 910

原创 APP测试和自动化测试

Android系统使用一段时间后容易出现卡顿,而ios系统则很少出现卡顿现象,并且Android系统的桌面灵敏性不如ios系统。安卓虚拟机机制解释:android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)、鸿蒙系统、mac。这是系统机制决定的。

2025-01-18 14:37:20 563

原创 app自动化实战

self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("大哥")#输入内容。self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("狼图腾")

2025-01-17 20:13:30 936

原创 app自动化测试

通常是 某一家厂商 针对某一 平台 或 系统 或 硬体 所发布出来用以开发应用程式的工具组,在这个工具包里面,可能包含了各式各样的开发工具,模拟器等。sdk安装的路径:E:\app\adt-bundle-windows-x86_64-20140702\sdk。案例:adb install E:\dcs\two\app\mojibase.apk。是用来帮一个 产品 或 平台 开发应用程式的工具组,由产品的厂商提供给开发者使用的。3、:platforms:你安装下载的所有Android平台,分版本存放。

2025-01-17 15:41:59 848

原创 Jmeter代理录制脚本

地址可以是localhost或127.0.0.1,端口与HTTP代理服务器端设置的端口号一致。但要注意,端口不能被其它程序占用,端口信息要与浏览器设置保持一致。2)netstat -aon|findstr "8888" --查询端口是否被占用。3)tasklist|findstr "8888" --查询对应端口被什么程序占用。端口号:8888(默认)改成不常用的端口号避免端口号冲突;1)netstat -an --列出本机所有使用端口信息。右击工作台-添加-非测试元件-http代理服务器。

2025-01-16 16:08:52 611

原创 Jenkins搭建

例如: 每2分钟执行一次 H/2 * * * * (注意:要空一格,H/2 每隔两分钟,第二个* 任何时 ,第三个* 表示任何日,第四个* 表示任何的月,第五个* 表示任意周。值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(注 意冒号前面有个"."一定要加上)第七步:等所有开发人员将bug修复好,再进行代码集成,交给测试进行回归测试 这样我们会陷入一个循环:修改bug­­­­集成代码­­­部署测试的循环中。

2025-01-16 11:24:27 967

原创 Jmeter性能指标

TPS代表一个事务的处理,可以包含了多次请求。很多公司用QPS作为接口吞吐量的指标,也有很多公司使用TPS作为标准,两者都能表现出系统的吞吐量的大小,TPS的一次事务代表一次用户操作到服务器返回结果,QPS的一次请求代表一个接口的一次请求到服务器返回结果。现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。

2025-01-16 11:23:51 682

原创 Jmeter性能测试

并发测试:并发测试是模拟多用户并发访问同一个应用、模块或者数据记录时可能发生的性能问题(如内存泄漏、线程锁和资源占用方面的问题)稳定性测试是在给系统施加一定压力,持续运行一段时间(7*24),观察系统能否稳定运行。用情况下,不断给系统施加压力,看系统的处理能力,以及系统是否会出现错误。c、jmeter 是开发源代码项目,可以进行接口测试和性能测试的工具,(1)jmeter 轻量级工具,免费,开源, (我们讲解的)性能测试要搭建性能环境,(不在测试环境和生成环境进行性能测试)

2025-01-15 15:09:51 722

原创 Jmeter数据库

prepared select:用于绑定变量重用执行计划,对于多次执行的SQL语句,prepared statement是最好的选择。Database Connection Configuration :数据库连接配置。在配置元件中添加 jdbc connection configuration。JDBC Connection Configuration jdbc连接配置。Connection Pool Confiauration 连接池的参数。

2025-01-15 09:13:08 988

原创 Jmeter接口测试

正则表达式匹配数据的结果可以看做一个数组,表示如何取值:0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值。如果正则表达式有多个提取结果,则结果是数组形式,模板1 11,2 22等等,表示把解析到的第几个值赋给变量;通常用于后续的逻辑判断,一般通常为特定含义的英文大写组合,比如:ERROR等。实战:GET http://manage.duoceshi.com/auth/code。使用正则表达式解析响应结果,()括号表示提取字符串中的部分值,前后是提取的边界内容。

2025-01-14 14:21:23 484

原创 Jmeter接口测试

正则表达式匹配数据的结果可以看做一个数组,表示如何取值:0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值。如果正则表达式有多个提取结果,则结果是数组形式,模板1 11,2 22等等,表示把解析到的第几个值赋给变量;通常用于后续的逻辑判断,一般通常为特定含义的英文大写组合,比如:ERROR等。实战:GET http://manage.duoceshi.com/auth/code。使用正则表达式解析响应结果,()括号表示提取字符串中的部分值,前后是提取的边界内容。

2025-01-14 11:16:15 841

原创 jmeter测试

(1)jmeter是由apache公司开发的一个纯java 的开源项目,不仅可以做接口测试,还可以做性能测试.(4)jmeter 采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。C:\Program Files\Java\jdk1.8.0_60 (jdk安装路径)1、安装jdk,在windows上安装,必须安装jdk1.7以上的版本,(3)jmeter可以实现分布式负载。3、在dos下查看jdk是否成功;1、下载jmeter安装包。(二)安装jmeter。5.创建桌面快捷方式。

2025-01-13 17:39:26 281

原创 接口自动化PO框架

其中api包用来组建并发送接口请求,conf包用来存放所有接口的入参信息,report包用来放置运行所有测试用例生成的报告,run包用来自动加载所有的测试用例、并且运行,testcase包用来继承unittest单元测试框架、组建接口测试用例,utils包用来存放发送邮件和生成报告模块。首先在pycharm里新建一个项目,然后构建6个包,分别是api构建包、conf配置包、report报告包、run运行包、testcase用例包以及utils工具包。第四个包:report包 报告包。

2025-01-13 11:51:54 982

原创 unittest接口框架

r=HTMLTestRunner(stream=file,title="接口自动化测试报告",tester="hz",description="用例执行情况")def setUpClass(cls) -> None: #类的开始。def setUp(self) -> None: #方法开始。# unittest.main() #第一种方法。print("我自由,我单独")print(" 方法的开始")print("类的结束")print("方法结束")导入报告模板,生成接口测试报告。

2025-01-13 11:51:19 294

原创 token

登录接口参数:{"username":"admin","password":"e6WGOz+g/FuR646O7IF8JrlC6qH/anCI9/0UCsVDnUxN2aBdGKtRffNb1W7i87dRavZCNyP9yqvAcXLgdKtsRA==","code":"8888","uuid":"{{uuid}}"}网站:http://shop.duoceshi.com/login?第三个接口:GET http://manage.duoceshi.com/api/menus/build。

2025-01-13 11:29:01 2069

原创 REquest

print(jk.cookies) # 打印接口的cookies值。print(jk.cookies) # 打印接口的cookies值。print(jk.cookies) # 打印接口的cookies值。print(jk.request) #打印接口的post请求。print(jk.request) #打印接口的post请求。print(jk.request) #打印接口的post请求。print(jk.request) #打印接口的post请求。(1)通过requests.Session() 方法。

2025-01-13 09:44:00 709

原创 postman

form-data是web表单默认的传输格式,编辑器允许你通过设置key-value形式的数据来模拟填充表单,你可以在最后的选项中选择添加文件。pm.expect(pm.response.text()).to.include("登录帐号不能为空!先发送登录接口,生成cookies值,后面接口就会自动获取cookies,cookies一致就会依赖登录。// 将响应体中的内容转换成json格式,设置一个变量jsonobject ,6、依赖接口(多个接口直接存在依赖关系,比如登录后查询,登录后的删除)

2025-01-09 11:35:42 1010

原创 fiddle

Cookie: JSESSIONID=F6D7AE748A7C87ACC4867A362796358A #比较重要,就是客户端发服务端发送请求,就会发送一个绘画,有个sessions id ,cookie保持会话持续,保持时间一个员,或者更久,只要不是手动删除,会以cookie的方法保持在服务端。Content-Type: 设置请求体的MIME类型 Content-Type: application/x-www-form-urlencoded。charset=UTF-8 请求的老数据类型。

2025-01-09 11:34:58 762

原创 接口测试-api

2、cookie是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。通常用户能够访问到的网页叫做公网,每个公网会有一个固定的IP,这个IP就会有对应的65536个端口,其中的每个端口可能对应其中一个内网的IP,这时的内网IP又会分为65536个端口。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。

2025-01-09 11:33:54 921

原创 python+pymysql

sql="insert into emp VALUES ('1879','张三',55,'1971/10/20',7300,'101');# one=yb.fetchone() #获取第一行数据。all=yb.fetchall() #获取所有数据。all=yb.fetchall() #获取所有数据。all=yb.fetchall() #获取所有数据。yb=db.cursor()#创建游标。yb=db.cursor()#创建游标。yb=db.cursor()#创建游标。

2025-01-09 10:17:05 1156

原创 selenium

例如,`WebDriverWait(driver, timeout, poll_frequency).until(EC.visibility_of_element_located(locator))`表示等待最长`timeout`时间,每隔`poll_frequency`秒检查一次条件`EC.visibility_of_element_located(locator)`是否满足(即元素是否可见)。* **定义**:在某个已设定的特定条件中,等待指定的时间,并在等待期间不断检查条件是否满足。

2025-01-07 14:10:42 1028

原创 selenium

dx.find_element_by_css_selector("#form > span.bg.s_ipt_wr.new-pmd.quickdelete-wrap>input").send_keys("层级上一级定位")# dx.find_element_by_css_selector('[name="wd"][class="s_ipt"]').send_keys("css中的组合属性")对应版本镜像链接2:https://registry.npmmirror.com/binary.html?

2025-01-04 15:05:05 1044

原创 sys模块

print(sys.exit(0))# 程序中间的退出,arg=0为正常退出 #表示正常退出rocess finished with exit code 0。# # print(sys.exit(1)) #表示非正常退出 Process finished with exit code 1。# print(sys.platform) #sys.platform: 获取当前系统平台#运行平台win32。#参数,当前执行的文件#暂时不讲。# print(sys.exit(-1))#退出,状态。

2025-01-04 09:23:24 175

原创 xlrd模块

第一个0表示行数,第一行3第二个1表示列索引数1表示第2列,第三个数3表示结束列(不包含结束列)#print(s.row_values(0)) #通过索引获取单元格中的值,0表示第一行。print(data.sheet_by_index(0))#通过索引获取sheet对象。#print(s.row_values(0,1,3)) #[‘性别’, ‘年龄’]print(data.sheets()) #通过索引获取sheet对象。#print(s.col_values(0)) #获取列所有的数据。

2025-01-04 09:22:42 389

原创 python模块

os模块提供了多数操作系统的功能接口函数。json1='{"age": 18, "isonly": true, "name": "zs", "no": ["123", "456"], "sex": "男"}'print(jsonzfc) #{"name": "zs", "age": 18, "no": ["123", "456"], "sex": "男"}{"age": 18, "isonly": true, "name": "zs", "no": ["123", "456"], "sex": "男"}

2025-01-02 17:08:18 1081

原创 python—2

分析思路:如果想查询到余额,前提必须登录,所以现在我们用两个函数来处理,第一个函数实现登录,第二个函数实现余额查询,调用第一个函数得到的结果给第二个函数,然后第二个函数根据结果进行代码处理。zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。a={"name":"多测师","url":"www.duoceshi.com","zj":"100w"}

2025-01-02 15:42:37 920

原创 Python

定义:列表list 是一组有序存储的数据,也是python常见的序列值一、序列中的每个元素都分配一个索引,第一个元素的索引是0,第二个元素的索引是1,依次类推,序列都可以进行操作包括索引,切片。print(str.replace("c","123")) #替换,"c"是原值,"123"是新值。print(str.replace("c","123",2)) #指定替换的次数,是从左往右替换。print(str.strip("a")) #删除字符的开头和结尾的字符 #bcdefname。

2024-12-30 15:54:20 645

原创 HTML内容

img链接:https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fi.qqkou.com%2Fi%2F0a2186762369x2331905615b26.jpg&refer=http%3A%2F%2Fi.qqkou.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?打开图片,右键=====复制(图片地址)======将复制的地址黏贴到src中。

2024-12-26 14:00:46 1261

原创 测试环境搭建

https://www.cnblogs.com/xiaolehong/p/17503231.html 电商的十大促销活动。https://www.cnblogs.com/xiaolehong/p/17531519.html 电商项目讲解整理。https://www.cnblogs.com/xiaolehong/p/17503385.html 电商平台架构。银行、保险、基金、股票、证券、贷款、信用卡,外汇,期货、数字货币、黄金、白银、理财、p2p。

2024-12-23 09:29:10 2221

原创 linux环境搭建

将自己的前后端代码包移动webapps下---在bin目录下:sh startup.sh 启动服务---配置前后端---启动数据库---创建新的数据库,(数据库名要和前后端的jdbc配置文件中的库名一致)---还原数据---再验证是否还原成功---编辑etc里的my.cnf---关闭防火墙,重启数据库,启动tomcat 服务器---在浏览器中输入网址+端口。用什么命令进行查看?总结,正向代理和反向代理主要的区别在于代理的对象不一样,正向代理的客户端,对于服务端来说,访问的就是真实的客户端;

2024-12-21 09:24:24 675

原创 测试环境搭建

conf目录: conf目录主要是用来存放tomcat的一些配置文件 server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码 web.xml可以设置tomcat支持的文件类型 context.xml可以用来配置数据源之类的 tomcat-users.xml用来配置管理tomcat的用户与权限。bin目录: bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命 令),另一类是以.bat结尾的(windows命令)

2024-12-20 18:49:25 696

原创 数据库-存储

create PROCEDURE hz6(in x int ,out y int ) #无参数,是括号内无参数。create PROCEDURE hz8(inout m int ) #无参数,是括号内无参数。create PROCEDURE hz9(inout x int ) #无参数,是括号内无参数。create PROCEDURE hz5(out y int ) #无参数,是括号内无参数。create PROCEDURE hz(in x int ) #无参数,是括号内无参数。

2024-12-19 14:53:41 378

原创 数据库-外键

CREATE table 表名 (字段名 字段类型(字符长度) PRIMARY key , 字段名 字符类型(字符长度) ,constraint 外键名 FOREIGN key(子表字段)(2)公司数据量大,造成数据重复,新旧表维护成本大,使用外键让公司数据进行分类和管理,让基础数据放在主表,子表单一化,避免数据的冗余。3、删除数据,子表中存在的数据,直接删除父表是无法删除 (要先删除子表数据,在删除父表数据)1、当父表不存在的数据,子表也无法插入数据(子表无法插入数据)

2024-12-19 10:35:24 774

原创 数据库-索引

CREATE table 表名( 字段名 字段类型(字符长度) PRIMARY key ,字段名 字符类型(字符长度) UNIQUE ));格式:ALTER table 表名 add INDEX 索引名(字段名);alter table 表名 add UNIQUE 索引名(字段名)格式:ALTER table 表名 add INDEX (字段名);(4)唯一索引(唯一,为空,在一个表可以有多个唯一索引)

2024-12-19 09:43:29 749

原创 数据库-视图

视图是一个虚拟表,它是一个虚拟表,它不在数据库中以存储的形式保存(本身不包含数据),是在使用视图的时候动态生成。格式:create view 视图名 as (sql语句)4、视图删除数据,基础表也同时删除数据(合表的表无法删除,单表可以删除)4、查看创建的视图(包含创建语句和视图名称,编码格式)2、查询数据库中所有的表 (物理表中是没有视图)修改视图数据,必须把它转化为对基础表的修改。5、基础表删除数据,视图也同时删除。1、视图是由基础表产生的虚拟表。2、视图的创建不影响基础表。

2024-12-19 09:23:40 237

原创 三表或多表

方法:SELECT a.stu_no,a.stu_name from student a,course b,sc c where a.stu_no=c.stu_no and b.c_no=c.c_no AND c_name='计算机原理'方法: SELECT c_name FROM student a,course b,sc c where a.stu_no=c.stu_no and b.c_no=c.c_no and stu_name='小明'(3,'hu','女',23,'haha3'),

2024-12-18 11:22:50 382

原创 数据库子查询

Select sum(incoming) from (select * from dept as a left join emp as b on a.dept1=b.dept2 where a.dept_name= "财务");select sid from emp where dept2 in (select dept1 from dept where dept_name="iT技术" or dept_name="财务" )返回的结果是一个表(多行多列),一般在from 后面。

2024-12-17 18:06:48 821

原创 数据库操作

案例:create table cc(cid int(5),cname char(20))DEFAULT charset=utf8;格式: create table 表名(字段名1 字符类型(字符长度),字段名2 字符类型(字符长度));7、在navicat 中===点击库名====点击查询====新建查询=====在新建查询中输入sql语句。案例:create table aa(id int(10),name varchar(20));

2024-12-17 09:15:47 508

原创 禅道注册、使用

新建bug(测试)=====指派给开发(前后端开发,测试指派)=======解决bug(开发)======待验证,(开发转给测试)=======验证bug(测试)==== 验证通过==关闭bug(测试)=======激活bug======指派开发======解决bug(开发)======待验证,(开发转给测试)=======验证bug(测试)==== 验证通过==关闭bug(测试)与开发沟通,开发是按需求开发,测试是按需求测试,测试的时候发现测试不了,少了某个步骤或环节,测试不了,找到开发,开发不认。

2024-12-12 17:15:29 2489

空空如也

空空如也

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

TA关注的人

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