自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重构项目怎么测试?

一、

2020-11-01 17:04:14 1599 1

原创 后端限流思考

一、雪崩是怎么产生的?有四个服务 A、B、C、D,A 调用 B,B 调用 C 和 D。其中,A、B、D 服务是系统的核心服务(像是电商系统中的订单服务、支付服务等等),C 是非核心服务(像反垃圾服务、审核服务)。一旦作为入口的 A 流量增加,你可能会考虑把 A、B 和 D 服务扩容,忽略 C。那么 C 就有可能因为无法承担这么大的流量,导致请求处理缓慢,进一步会让 B 在调用 C 的时候,B 中的请求被阻塞,等待 C 返回响应结果。这样一来,B 服务中被占用的线程资源就不能释放。久而久之,B 就

2020-10-25 20:16:01 596 1

原创 mac下xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)问题

起源:git clone ***报错:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 尝试1:git h报错:xcrun: err...

2018-12-29 11:14:32 3769

原创 appium踩坑填坑实录

1. 问题:price_str = '¥199.00'price_st1 = price_str.split('¥')————————>这个的返回值是["","199.00"]报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)解决

2017-12-18 14:04:58 1302

原创 注册登录测试用例—祭我所踩过的那些坑

注册登录看起来很简单,但是面试的时候我们经常会遇到这样的面试问题。此篇我仅用来记录更新自己在工作中在登录注册方面遇到的问题,学习和积累经验,当然也欢迎大家留言补充。现在一般公司的登录注册都是基于手机号+验证码实现的,接下来我仅以下图中的登录注册为例去编写测试用例。一、注册页测试用例:1.手机号可编辑字符类型。2.手机号长度(禁止输入的时候使用复制粘贴),手机号前几位数字限制。

2017-11-02 16:50:27 21340 6

原创 价值巨款的安卓兼容性分享

一、选择测试平台注册登录目前我用过的可以免费测试兼容性的平台有Testin云测,阿里云移动测试平台MQC和百度移动云测试中心MTC。目前可以免费测试的机型数量如下表所示:Testin50款http://c.testin.cn/site/loginMQC30款http://mqc.aliyun.com

2017-10-11 15:10:48 459

原创 安卓app生成和使用xpath工具—lazy-uiautomatorviewer的配置和使用

1.把lazy-uiautomatorviewer的jar包拷贝到安卓目录下的sdk\tools\lib文件夹中替换掉原来的uiautomatorviewer.jar包。(注意:要和原来的命名保持一致)jar包下载地址:http://download.csdn.net/detail/kaka1121/96859362.双击sdk\tools\bin目录下的uiautomat

2017-08-16 16:02:38 3457

原创 appium+python实例(1)原生应用的appium测试步骤

相信大家和我一样在appium的学习路上披荆斩棘,终于配置好所有环境之后,想在网上找个靠谱的实例入门结果发现很困难,所以身为过来人的我会务必详尽的介绍一个appium实例的测试流程。有不详或者异议的地方还望大家留言指正。一、脚本准备这一步我们要准备好我们测试脚本,大致步骤是,打开模拟器,链接adb,打开uiautomator,打开PyCharm一边编写脚本一边定位元素。详细步骤如下所示

2017-08-08 16:11:30 5401

原创 appium工作原理

appium简介appium关键词c/s、开源、Android、ios、firefox、跨平台、WebDriver、UiAutomation、UiAutomatorappium简介appium设计采用c/s模式,支持多种语言,基于webdriver协议,webdriver是基于http协议的,支持android和ios的app自动化同时也支持firefox的web自动化。appiu

2017-08-04 16:10:56 4021

原创 jmeter录制移动app脚本

之前一直在学习loadrunner想测一测服务器的性能,学完之后发现loadrunner在c/s架构的运用很少,资料也少,然而我们公司的项目是基于c/s架构的移动端app,所以我选择使用jmeter。jmeter录制移动端app脚本的步骤如下:1、启动Jmeter;2、“测试计划”中添加“线程组”;3、“工作台”中添加“HTTP代理服务器”;4、配置代理

2017-05-19 16:16:24 1448

原创 WordPress-Mailpress远程代码执行漏洞——利用

相关资料:http://www.jeeseen.com/archives/421.htmlhttp://www.xingkonglangzi.com/post-662.htmlhttps://www.exehack.net/3509.htmlhttps://github.com/Medicean/VulApps/tree/master/w/wordpress/2

2017-05-12 14:09:09 4397

原创 Android studio中APK不能正常安装到设备上(真机和模拟器都不行)

在Android studio中编译过项目之后,在往设备上安装APK的时候,有这样的提示:It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.手贱把问题解决了,没有截图。在下边会有y

2017-04-13 10:12:05 9967

原创 Linux基础知识和常用命令(四)

查看文件的方法归纳:cat,more,vi,head,tail1.cat 查看小文件,不可以翻页,不可以编辑,可以把多个小文件合成一个大文件cat f1 f2 f3 >newfile2.more适合查看大文件,可以翻页不可以编辑空格      翻屏回车     滚动行b       向前一屏f        向后一屏h         帮助q         退

2017-02-08 15:26:54 321

原创 Linux基础知识和常用命令(三)

一、用户和组的管理1.添加用户,命令:user add 用户名(只能由root操作)不写组的话会自动形成一个组,组名就是用户名。2.创建密码,命令:passwd 用户名(只能由root操作)3.切换账户,命令:su 用户名 从root切换到普通用户不需要密码,从普通用户切换到root或者其他用户需要密码。su回车到root用户。4.添加组,命令:groupadd

2017-02-08 11:04:50 343

原创 Linux基础知识和常用命令(二)

1.执行命令就会执行一个可执行文件,会启动一个进程>命令:sleep 5启动sleep进程,休眠5秒>命令:clear清屏>命令:date系统日期>命令:cal日历>命令:cal 年份   该年的年份>命令:cal 月 年  X年X月的日历ctrl+c 用于命令行中结束当前进程ctrl+z 挂起当前进程,程序没有结束放到后台,交回终端>命令:jo

2017-02-07 14:35:44 459

原创 Linux基础知识和常用命令(一)

一、command 命令,命令的基本格式:命令名 [选项] [参数](它们之间至少留有一个空格)参数表示操作的对象,选项是增加其他功能,选项和参数可能不止一个。命令使用规则:我是谁,我在哪,我有啥1.我是谁?>命令:who am i显示最初登录的用户信息root    pts/0    .........(192.168.111.1)    客户端的IP地址,本地登录的话不

2017-02-06 16:15:38 559

原创 远程登录Linux服务器

一、1.[root@localhost root]# 第一个root是用户名,第二个root是用户的主目录,登录后默认所在的目录(home directory)普通用户只有在自己的主目录下才有大量的权限,root用户拥有所有的权限。2.Linux系统的登录方式:>本地登录(console登录)1)命令行      2)图形界面(优点:直观,缺点:消耗资源)>远程登录

2017-02-05 17:27:10 711

原创 Linux的swap分区

一、Swap分区即交换区Linux中构成虚拟内存的空间,默认设置为物理内存的2倍,可以根据系统实际情况进行调整——没有挂载点,由系统内核统一管理。二、当系统的物理内存不够用的时候,就需要将物理内存中存储长久不用的信息空间释放出来,以供当前运行的程序使用。这些被释放的数据被临时保存到Swap空间(磁盘中的一块区域)中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。三

2017-02-04 17:51:33 312

转载 移动端安装包的测试用例

安装  安装手册是否规范,是否简洁,是否通俗易懂。  安装手册是否齐全,正确,有改动时,文档是否同步更新  直接复制安装程序到电脑上,能否正常安装  按安装手册给出的步骤进行安装,安装是否正确  查看在安装过程中存在的提示信息是否明确,意思是否明确  在安装过程中,点击取消按钮,能否正常退出安装程序,软件是否可用。  安装时是否识别有SD卡,并默认安装到sd卡中  

2017-02-04 13:42:11 1017

原创 HTTP协议和HTTPS协议

最近HTTP协议,HTTPS协议,SSL协议,数字签名这些老是在眼前跳,但是很多都忘记了,重温了一把,总结一下1.HTTP协议HTTP协议是超文本传输协议,端口为80,属于应用层协议,由请求和响应构成,永远都是客户端发送请求,服务端回送响应。这样就限制了使用HTTP协议无法实现在客户端没有发起请求的时候,服务端把消息推送给客户端。HTTP协议的动作过程:浏览器打开一个tcp

2016-12-08 16:43:37 813

原创 TCP协议三次握手四次挥手

tcp协议的三次握手四次挥手虽然在我的实际工作中并不常用,但是面试的时候似乎经常被问到,最近好好学习了一把,总结一下。TCP协议是传输控制协议,位于tcp/ip协议模型的传输层,提供可靠的连接服务。三次握手:1.TCP协议的三次握手,总体可以分为三个步骤:请求-应答-再次确认。握手过程如图所示:客户端发送连接请求的报文服务端接受连接后,回复ACK报文,并

2016-12-08 14:54:53 578

原创 移动端功能测试测试点总结一

软件测试的分类很多,我倾向于把它分成功能逻辑测试、性能测试、安全测试,接下来我将根据这个分类继续我接下去的学习和工作。1.安装、卸载和更新。2.导航模块,滑动导航图,切换应用重新打开看是重新导航、继续上次的导航和跳过导航。(遇到过重新进入导航页面重新导航,点返回键提示两次退出应用)3.登录注册模块,编辑用户名和密码的内容限制,中文,英文,数字,字符,空格,null。用户名和密码

2016-11-25 15:33:39 9755

原创 Android测试--monkey详细到炸的总结

1.Monkey简介Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。2.质量要求:banben

2016-09-26 16:36:14 27434 7

原创 用ViewPagerIndicator实现App主页面Tab

最近一直在研究怎么实现Tab,鸿洋大神超叼的用四种方法实现App主页Tab,分别是:纯ViewPager,纯Fragment,ViewPager+FragmentPagerAdapter和ViewPager+FragmentPagerAdapter+ViewPagerIndicator其中呢最后一种最复杂,我将对最后一种重点总结,当然还会再加上那么一点自己的认识。一、先描述一下我们的思

2016-08-31 23:04:32 438

原创 洋神的抽奖转盘学习总结

SurfaceView继承自View但与View不同的是,View通过onDraw方法在UI线程进行绘制。而SurfaceView则是在子线程进行绘制,这样可以避免阻塞主线程,所以在游戏中经常使用SurfaceView。SurfaceView中包含一个专门用于绘制的Surface,Surface中包含一个Canvas。怎么获取Canvas:通过getHolder方法获取到Sur

2016-08-26 10:39:37 403

原创 service的基本用法+远程服务

一、进程回收的优先级android操作系统会尽可能长期的保留应用程序的进程,系统根据进程的优先级回收进程,释放内存。优先级顺序:前台进程,Foreground process,能看到应用程序的界面,并且可以操作这个应用程序。可视进程Visible process能看到应用程序,但是不能操作服务进程Service process应用程序带一个后台运行的服务,服务没有停止。后台

2016-08-20 23:14:54 1702

原创 自定义组合控件之——旋转的菜单(老优酷菜单)

一、布局效果图如图所示:要实现的逻辑功能:点击menu,控制三级菜单的显示:如果当前三级菜单显示,就把它转出去(逆时针180度)。如果不显示,就转出来三级菜单(顺时针180度)。点击home,控制二级菜单的显示:如果三级菜单不显示,二级菜单显示直接转出去二级菜单:如果三级菜单不显示,二级菜单不显示直接转出来二级菜单:如果当前三级菜单显示,就先把它转出去,间隔

2016-08-20 22:37:43 553

原创 viewpager实现图片轮播+小圆点跟着动

一、ViewPager简单用法ViewPager的简单用法:在布局文件中引入ViewPager,不记得完整的名称的话可以直接到support.v4.view包下找到ViewPager然后copy它的全路径名。<android.support.v4.view.ViewPager android:id="@+id/guide_viewpager" andro

2016-08-18 19:26:15 5131 4

原创 String类学习笔记

前言:首先呢这篇文章给初学者看的,也算是自己的学习笔记,督促自己坚持下去,所以呢大神们看不入眼的话还望海涵。初始化声明一个字符串:String 字符串标志符;          例如:String str;声明并初始化字符串的常用方法:String 字符串标志符=字符串;   例如:String str=”abcd”;通过构造方法构建并初始化对象:

2016-06-25 22:30:39 320

原创 初始化学习笔记

本文主要讲解对象创建过程,构造器初始化,默认初始化值,初始化方法以及初始化顺序。一、对象创建过程(无继承的情况)Vehicle veh1 = new Vehicle();该句详解如下:(摘自网络)①右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象。②末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生

2016-06-25 22:24:31 345

原创 组合与继承 学习笔记

一、继承继承就是一种由已有类创建新类,在已有类的基础上扩展功能。1、只能单一继承,即子类只能有一个父类,但是可以多层继承。2、子类中出现了同名称的成员变量,会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。3、子类可以对父类的方法进行重写(即方法的返回类型、方法名、参数列表完全相同时,仅方法

2016-06-25 22:20:13 460

原创 java学习笔记之——访问权限控制

成员的访问权限首先先声明一下friendly默认访问权限,就是在类的成员变量或者成员方法在没有被public,private,protected修饰时就是默认访问权限。(唉,说到这里就想起来java期末考试时老师让建一个“友好型”的方法,我在声明方法的时候想不出friendly怎么拼写,最后那里空了一格没写,现在回想起来真是被机智的自己感动哭了。)另外,需要注意一下局部变量不能用修

2016-06-25 22:14:20 359

原创 java学习笔记之—多态

一、父类引用指向子类对象:父类引用指向子类对象时,注意以下几点:1、实例化一个没有名字的子类对象,然后向上转型为父类的父类的引用,先去调用子类重写的方法,子类没有重写就再去调用父类的方法。2、只能调用父类中定义过的方法和变量(父类中没有定义过调用的时候要报错)3、专属于子类的成员变量,在子类方法中被访问时,这时候通过父类引用还是可以调用子类重写的的方法4、覆盖priva

2016-06-25 22:10:27 334

原创 java学习笔记之—final 与 static

一、fianl1、final数据Final可以修饰静态变量,实例变量和局部变量。final修饰一个永不改变的编译时常量或者是一个运行时被初始化的值,而你不希望他被改变。对于基本数据类型final使其数值恒定不变,对于对象引用final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。(对象自身是可以被修改的)必须在域的定义处或者每个构造器中用

2016-06-25 22:04:34 427

原创 java学习笔记之—接口和抽象类

一、抽象类抽象类是“是不是”的概念:例如:一只鸟是不是动物。1、抽象方法只有方法的声明,没有具体的实现2、含有抽象方法的类是抽象类,但是并非所有的抽象类都必须含有抽象方法。不能用抽象类创建对象(即使该类中不含有抽象方法)。3、抽象类是为了继承而存在的,通过继承去实现,如果创建了抽象类没有被继承则抽象类没有意义,因为它自己也不能去创建对象。4、抽象类也可以拥有成员变量

2016-06-25 22:00:37 662

原创 java学习笔记之——内部类

分类内部类分为四种:成员内部类,局部内部类,静态内部类,匿名内部类这四种内部类划分可以分为:第一种划分:非静态                                              静态成员内部类局部内部类                                   静态内部类匿名内部类第二种划分:成员

2016-06-25 21:47:58 362

空空如也

空空如也

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

TA关注的人

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