自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (3)
  • 收藏
  • 关注

原创 信息搜集之Google Hacking

信息搜集之Google Hacking

2023-12-18 17:38:02 188

原创 等价类划分的几大原则

等价类划分的几大原则

2023-11-02 14:39:14 545

原创 分布式数据库的分布透明性

分布式数据库系统按不同层次提供的分布透明性有分片透明、复制透明、位置透明、局部映像透明。

2023-10-25 10:24:03 453

原创 常见设计模式及其关键单词

设计模式 关键单词 创建型 抽象工厂模式 AbstractFactory 生成器模式 Builder 工厂方法模式 Factory Method(Product、Creator) 原型模式 Prototype 单例模式 Singleton 结构型 适配器模式 Adaptee、Adapter 桥接模式 Abstraction、Implementor 组合模式 Composite 装饰模式 Decorat

2023-10-24 17:28:09 153

原创 极限编程的最佳实践

5.测试先行(测试驱动开发)2.小型发布(小版本发布)11.现场客户(客户测试)1.计划游戏(规划策略)10.每周工作40个小时。

2023-10-24 16:56:10 365

原创 常见存储器存取方式

直接存取:介于随机存取何顺序存取之间的一种寻址方式,磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。相联存取:是一种随机存取的方式,但选择某一单元进行读写取决于内容而不是地址,cache通常采用相联存取方式。顺序存取:访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。随机存取:访问任何一个存储单元所需的时间是相同的,例如主存储器。

2023-10-24 16:51:11 499

原创 常见排序算法的时间复杂度和空间复杂度

常见排序算法的时间复杂度和空间复杂度

2023-10-23 13:51:09 42

原创 模块内聚与模块耦合的类型

几种模块内聚与模块耦合的类型

2023-10-08 13:37:20 506

原创 记录update select语法及内置函数INTERVAL实例

最近遇到一个小需求,大致需求是取表1中的timestamp类型的某个字段的最大值并减去30分钟,赋值给表2中的timestamp类型字段,用来做下一步。注:如果无条件则会更新表中所有数据,故执行不带条件的update需要慎重慎重再慎重。1,需要先得出表1中timestamp类型字段的最大值。1,表1中timestamp类型字段的最大值。2,用得到的最大值减去30min。2,用得到的最大值减去30min。3,将最终值赋值给表2中的字段。3,将最终值赋值给表2中的字段。先来看语法,和以上思路一一对应。

2023-05-09 17:42:07 851 1

原创 解决pip安装连接超时的问题(WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=Non)

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=Non只需在命令行后面加上-i http://pypi.douban.com/simple --trusted-host pypi.douban.com即可

2022-06-01 09:57:50 1839

原创 XML组成部分

Extensible Markup Language可扩展标记语言快速入门:<?xml version='1.0' ?><users> <user id='1'> <name>zhangsan</name> <age>23</age> <gender>male</gender> <br/> <

2022-02-09 16:51:37 1291 1

原创 数据库设计范式

设计关系数据库时,遵从不同的范式要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,要遵循后边的范式要求,必须先遵循前边所有范式要求。各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式1NF、第二范式2NF、第三范式3NF、巴斯-科德范式BCNF、第四范式4NF、第五范式5NF(5NF又称完美范式)。1NF:每一列都是不可分割的原子数据项2NF:在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除...

2022-01-26 10:45:33 1588

原创 数据库多表关系的实现

一对多、多对一:如部门和员工。在多的一方建议外键,指向一的一方的主键。多对多:如学生和课程。多对多关系需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键。一对一:如人和身份证。可以在任意一方添加唯一外键指向另一方的主键。-- 创建旅游线路分类表 tab_category-- cid 旅游线路分类主键,自动增长-- cname 旅游线路分类名称非空,唯一,字符串 100CREATE TABLE tab_category ( cid IN

2022-01-26 10:08:34 900

原创 注解 元数据

* 概念:说明程序的。给计算机看的* 注释:用文字描述程序的。给程序员看的* 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。* 概念描述:* JDK1.5之后的新特性* 说明程序的* 使用注解:@注解名称...

2022-01-25 15:36:12 958

原创 反射-框架设计

框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制* 好处:1.可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性。* 获取Class对象的方式:1.Class.forName("全类名"):将字节码文件加载进内存,返回Class对象* 多用于配置文件,将类名定义在配置文件中。读取文件,...

2022-01-25 11:37:11 788

原创 junit单元测试

测试分类:黑盒测试---不需要写代码。给输入值,看程序是否能够输出期望值。白盒测试---需要写代码。关注程序具体执行流程。Junit使用:白盒测试1.定义一个测试类(测试用例)建议:测试类名:被测试的类名Test包名:xxx.xxx.xx.test cn.itcast.test2.定义测试方法:可以独立运行方法名、 返回值、 参数列表3.给方法加@Test4.导入junit依赖环境...

2022-01-25 11:29:41 905

原创 一个简单的TCP网络程序

服务端:import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class ServerTCP { public static void main(String[] args) throws IOException { System.out.p

2022-01-19 10:48:18 806

原创 TCP通信分析图解

1.【服务端】启动,创建ServerSocket对象,等待连接2.【客户端】启动,创建Socket对象,请求连接3.【服务端】接受连接,调用accept方法,并返回一个Socket对象4.【客户端】Socket对象,获取OutputStream,向服务端写出数据5.【服务端】Scoket对象,获取InputStream,读取客户端发送的数据到此,客户端向服务端发送数据成功自此,服务端向客户端回写数据6.【服务端】Socket对象,获取Outpu...

2022-01-19 10:22:05 2353

原创 网络编程入门

无论是B/S还是C/S架构,都是离不开网络的支持的。网络编程,就是在一定的协议下,实现两台计算机通信的程序。一、网络通信协议通信协议是计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守,最终完成数据交换。TCP/IP协议:传输控制协议/因特网互联协议(Transmission Contro...

2022-01-19 09:51:38 932

原创 转换流图解

2022-01-18 15:40:14 844

原创 字符编码和字符集

字符编码Character Encoding:一套自然语言与二进制数之间的对应规则。字符集Charset:也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII、GBK、Unicode等。可见,当指定了编码,它所对应的字符集自然就指定了,所以编码才是最终要关心的。ASCII字符集 :ASCII(American Standard Code f

2022-01-18 15:08:38 1039

原创 等待唤醒机制

一、线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程任务)却不同比如:线程A用来生成包子,线程B用来吃包子,包子可以理解为同一资源,线程A和线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。多个线程并发执行时,在默认情况下cpu是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行,那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。 ...

2022-01-14 16:02:50 955

原创 线程状态图---NEW、Blocked、Runnable、Waiting、Timed Waiting、Teminated

计时等待:锁阻塞:

2022-01-14 14:10:31 823

原创 debug追踪---使用IDEA的断点调试功能,查看程序的运行过程

1. 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序2.点击debug运行模式3.程序停止在断点上不再执行,而idea最下方打开了debug调试窗口4.调试窗口介绍5.快捷键f8,代码向下执行一行,第九行执行完毕,执行到第10行(第十行还未执行)6.切换到控制台面板,控制台显示 请录入一个字符串:并且等待键盘录入...

2022-01-10 10:45:50 4675

原创 HashSet集合存储数据的结构(哈希表)

在jdk8以前,哈希表采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里,但是当位于一个桶中的元素较多,即hash值相对的元素较多时,通过key值依次查找的效率较低。而在jdk8中,哈希表存储采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。简单来说,哈希表是由数组+链表+红黑树(jdk8增加了红黑树部分)实现的。存储流程图: 总而言之,jdk8引入红黑树大程度优化了H...

2022-01-06 15:30:59 1931

原创 数据结构-栈、队列、数组、链表、红黑树

一、栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。简单来说:采用该结构的集合,对元素的存取有如下特点:①先进后出:存进去的元素,要在它后面的元素依次取出后,才能取出该元素。例如:子弹压进弹夹,先压进去的子弹在下面,后压进去的子弹在上面,当开枪时,先弹出上面的子弹,然后才能弹出下面的子弹。②栈的入口、出口都是栈的顶端位置。压栈:...

2022-01-06 11:55:26 1424

原创 monkey日志分析

一、Monkey 日志详解Monkey 日志由以下几部分组成:(1) 测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比。 ​​​​​​​(2) App 切换和 Activity 跳转:可以看到切换到了哪个 App,从哪个 Activity 跳转到了哪个 Activity,如果发生了异常,就可以看出是在哪个 App 和 Activity 中发生的。注:在允...

2021-11-23 11:48:41 7506

原创 monkey日志管理---保存日志、简单日志分析

一、日志保存的方法保存在PC端:adb shell monkey 命令参数 count计数 >pc端路径+文件名.txt adb shell monkey [options] 1000 >d:\monkey.txt 保存在手机中:adb shell 进入Android shell中 ,monkey [options] count计数 > 手机端路径+文件名.txt monkey [options] 1000 >/sdcard/...

2021-11-23 11:36:07 3995

原创 monkey命令常用参数与monkey事件百分比

一、monkey命令常用参数(1)p格式:-p package包名 -p com.baidu.browser.apps_sj -p com.tal.kaoyan作用:通过package指定要测试的app,可以指定多个;注意:如果不指定-p,则进行整机测试 (2)sseed值,随机测试(monkey测试)的标记(flag)...

2021-11-23 11:26:05 3730

原创 Monkey-介绍、优势、操作步骤、中止monkey、

Monkey是Android中的一个命令行工具,可以在Android模拟器或手机设备中运行。 Monkey通过向Android系统发送伪随机用户事件流(如屏幕的点击、滑动和系统按键操作等),实现对正在开发的Android App进行压力测试。 Monkey主要用于对所开发的Android App进行稳定性测试。 稳定性就是指程序平稳运行不出现比较严重的错误。Monkey模拟单用户长时间运行产生的压力,loadrunner模拟多用户短时间内产生的压力。等产品稳定,没有特别多...

2021-11-23 11:15:14 2831

原创 python-appium-发送按键

Android独有方法:press_keycode()driver.press_keycode(66) # 回车键driver.press_keycode(61) # Tab键driver.press_keycode(29) # 字母‘A’示例:电话键:控制键:数字字母键:多媒体功能键:...

2021-11-23 10:52:27 1438

原创 python-appium-触摸事件(模拟触屏操作)

TouchAction 类将一系列的动作放在一个链条中,然后将该链条传递给服务器。服务器接收到该链条后,解析各个动作,逐个执行。一、方法短按: press()长按: long_press()点击: tap()移动到: move_to(x,y),x,y相对于上一个坐标的移动距离(偏移量)等待: wait()释放: release(),长按一定要加释放,否则会一直按住不放开...

2021-11-23 09:45:45 2447

原创 python-appium-安装、卸载、启动app

(1)启动Activity: driver.start_activity(package, activity)在当前app打开一个activity,或者新打开一个应用并启动一个activity,仅支持 Android。(2)安装应用:driver.install_app(‘apk_path’)(3)卸载应用:driver.remove_app(‘package’)(4)关闭当前的应用:driver.close_app()(5)判断应用是否已安装:driver.is_app...

2021-11-23 09:39:58 2462

原创 python-appium-获取元素属性值get_attribute

(1)text 获取元素的文本 driver.find_element_by_id("").text(2)tag_name 获取元素的class属性值 driver.find_element_by_id("").tag_name(3)get_attribute(“属性名”) 获取元素的属性值 driver.find_element_by_id("").get_attribute("name"),获取元素的text属性(前提是content-desc属性为空)dr...

2021-11-23 09:36:28 3832

原创 python-appium-不同场景业务处理

一、不同场景只有当软件有更新的版本时会有升级提示只有重新安装或者升级后首次打开才会有引导页打开App,不登录直接关闭App打开App,登录后不退出关闭App打开App,登录后退出登录,再关闭App在上一个设备中未退出登录,使用新设备登录二、用异常捕获判断元素是否存在 举例一:如何判断是否有升级弹窗: 如果能够定位到【取消】按钮----->有升级提示 没有定位到【...

2021-11-23 09:30:35 155

原创 python---appium屏幕滑动

应用场景:上拉加载,下拉刷新方法:swipe( start_x, start_y, end_x, end_y, duration=None )start_x, start_y 开始点的坐标end_x, end_y 结束点的坐标duration=None,持续时间,单位是ms,默认为None,可以省略示例:屏幕滑动是根据坐...

2021-11-23 09:05:46 774

原创 python---appium坐标点击

如果无法获取元素的属性,可以考虑使用坐标点击获取屏幕坐标:为了获取要点击的屏幕坐标范围,需要在设备的设置---开发者选项中开启“指针位置”选项,这样在点击屏幕位置时,屏幕最上方就可以显示出点击的坐标注意:不需要精确的坐标值,要避免靠近屏幕边缘的位置,坐标定位本身就存在误差,只要点击在按钮上即可。 方法一:driver.tap([(x1,y1),(x2,y2)], duration),在指定范围内点击...

2021-11-22 13:40:09 5462 5

原创 python-appium元素定位

一、元素定位方法(1)id定位:find_element_by_id(“resource-id的属性值”)利用元素的resource-id的属性值进行定位;在Android App中同一类别的元素的id的属性值有可能一致。(2)name定位:find_element_by_name(“text属性值”) 利用元素的text属性值进行定位,由于text的值容易发送变化,在appium1.5后该方法被废弃(3)c...

2021-11-22 13:36:39 1567

原创 UI Automator

UI Automator,是Android 4.3发布的时候包含了一种新的UI测试框架uiautomatorviewer – 一个图形界面工具来扫描和分析应用的UI控件,存放在tools目录uiautomator – 一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎一、uiautomatorviewer.bat获取元素属性操作步骤 (1)打开模拟器,adb连接设备 (2)打开uia...

2021-11-22 11:37:29 142

原创 inspector会话界面介绍及脚本录制

btn1:选择元素,查看属性值,右侧可以对该元素进行Tap点击、Send keys输入、Clear清空等操作btn2:模拟swipe滑动btn3:模拟点击(根据坐标)btn4:back返回btn5:刷新,和移动端同步btn6:录制脚本btn7:根据参数搜索元素,搜索到之后可以进行操作btn8:quit session&close Inspector 关闭并退出会话...

2021-11-22 11:26:04 246

Mysql数据库的安装教程.pdf

Mysql数据库的安装教程.pdf

2021-10-28

allpairs.rar

由于很难找到合适的正交表,要将各个控件及其取值,逐一映射到正交表中,需要耗费很多时间,所以可以使用正交工具Allpairs。

2021-10-16

sqlite-jdbc-3.27.2.1.jar包

sqlite-jdbc-3.27.2.1.jar包

2021-10-11

空空如也

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

TA关注的人

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