自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 测试开发-iOS真机Crash Log 的获取和分析

本文主要介绍iPhone的crash log获取方式和log的符号化处理,通过符号化流程可封装成脚本,稳定测试monkey中可直接对捕获的crash log进行解析

2022-09-20 16:00:01 1484 1

原创 测试开发—XCTest-iOS单元测试框架

XCTest 是iOS的单元测试框架,有objective-c和swift两种语言可以选择XCUITest 是iOS的UI测试框架XCTest 官方文档地址:https://developer.apple.com/documentation/xctestXCTest 框架类似于python中的unit test框架,声明一个测试case继承XCTestCase和测试方法,测试方法以test开头,然后执行。相关类介绍:Class XCTestXCTest类提供XCTest...

2021-01-26 15:26:03 1350

原创 Leetcode—【中等】3. 无重复字符的最长子串

题目:示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串。解题思路:子串和子序列区别:...

2021-01-11 16:59:59 178

原创 Leetcode—【简单】1. 两数之和

题目:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]Python代码如下:class Solution(object): def twoSum(self...

2021-01-11 16:43:03 137

原创 Leetcode—【中等】647. 回文子串

题目:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。解题思路:动态规划假设,s[i...j](i...j 表示这个区

2021-01-07 10:09:12 108

原创 测试开发—Xcode使用远程手机调试

iOS设备通讯协议先介绍以下iOS设备与Mac之间的通讯协议,虽然iOS设备是通过USB线连接到Mac机器上,但实际上Mac与iOS设备并不是直接通过usb协议进行通信的。具体协议如下:、macOS上有一个名为usbmuxd的服务,即USB multiplexing daemon的英文缩写,作用是在USB协议上实现多路TCP连接。iTunes和XCode这些工具本身并不直接与设备通信,而是连接到本地的socket文件/var/run/usbmuxd上,然后通过usbmuxd服务把请.

2021-01-06 17:33:01 2808 2

原创 Leetcode—【中等】494. 目标和

题目:给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一...

2021-01-06 10:10:40 105

原创 Leetcode—【中等】560. 和为K的子数组

题目:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。解题思路:(下面方法会超时)class Solution: def subarraySum(self, num...

2021-01-06 10:05:52 105

原创 Leetcode —【中等】739. 每日温度

根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。题目理解:数组中元素与下一个比它大的元素之间的距离复杂度解析:该方法只需要对数组进行一次遍历,每个元素最多被压入和弹出堆栈一次,所以算法复杂...

2021-01-04 15:14:42 129

原创 测试开发—Tcpdump iOS抓包

一、创建远程虚拟接口Remote Virtual Interface (RVI)iOS上抓包的方法主要有:1. Wifi共享,然后通过fiddler、charles等可视化抓包工具。可以设置mac进行wifi共享,或者使用360随身wifi等工具;2. 设置wifi的HTTP代理,然后通过可视化抓包工具;3. RVI方法;下面就介绍RVI方法,该方法适用于iOS5.0以上设备,需要...

2019-12-30 14:31:15 404

原创 测试开发—Redis相关问题解答整理

1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅...

2019-12-30 14:20:51 196

原创 测试开发—Django的工作方式

Django是一个基于Python的Web应用框架。它与Python的另外一个Web 框架 Flask最大的区别是,它奉行 “包含一切” 的哲学。该理念即为:创建 Web 应用所需的通用功能都应该包含到框架中,而不应存在于独立的软件包中。例如,身份验证、URL 路由、模板系统、对象关系映射(ORM) 和数据库迁移等功能都已包含在Django 框架中。虽然看上去失去了一些弹性,但是却可以让...

2019-03-07 18:41:59 564

原创 测试开发—码流、单码流、双码流、多码流

码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。转码是视频转码技术将视频信号从一种格式转换成另一种格式。它具有两个面向不同领域的重要功能。首先是在传统设备和新兴设备之间实现通信。例如,许多现有的视频会议系统是基于旧的视频编码标准H.263而建立,而最新的视频会议系...

2018-08-31 11:06:50 1717

原创 自动化-Android Monkey测试详细介绍(下)

1.Monkey结果分类:Monkey运行log输出,按照以下顺序输出测试命令信息:随机种子、运行次数、可运行的应用列表、各事件百分比伪随机事件流:11大事件流异常信息:ANR,CRASH等异常测试结果信息:完成事件、旋转情况、按键情况、网络测试命令信息:结果详细解读:各事件截取一个事件:***事件4可以做旋转压力测试!!2.Monkey异常结果:1)ANR实际错误输出:**traces.txt是...

2018-04-12 11:33:48 406

原创 自动化-Android Monkey测试详细介绍(上)

1.Monkey:是谷歌提供的一个用于稳定性与压力测试的命令行工具。2.Monkey路径:Monkey程序是安卓系统路径:/system/framework/Monkey.jar启动脚本路径:/system/bin/monkey3.Monkey是由adb命令启动,故只要配置adb环境windows配置MAC配置4.Monkey运行:命令格式:1)直接PC启动(结果在PC端):>adb she...

2018-04-12 10:44:27 567

原创 自动化-Android logcat使用

【logcat命令介绍】:logcat是Android中一个命令行工具,可以用于得到程序的log信息。语法:[adb] logcat [<option>]…[<filter-spec>]….pc端执行:adb logcat【logcat缓冲区】:-b <buffer>Android的Log输出量巨大,因此Android把Log输出到不同的缓冲区。4个RadioS...

2018-04-11 11:22:29 667

原创 测试开发-Git常用命令总结

Git分布式版本管理系统,一般来说,日常使用只要记住下图6个命令,就可以了。但是熟(ti)练(sheng)使(bi)用(ge),恐怕要记住60~100个命令。Githug通关小游戏,从入门到放弃 这次没有原因,一次次的感受Git的高逼格后,经不住诱惑开始进行总结,仅此而已,本次总结按照常用的命令模块进行总结! Git工作流程解析1.Workspace:工作区 简单说就是Git版本库所在的目录

2017-12-22 15:12:15 928

原创 iOS开发-关于iOS11适配的一些坑

安全区域(Safe Area) 在iOS11以前, 自定义UIViewController时, 从来没有考虑过topLayoutGuide和bottomLayoutGuide这两个属性.但是在iOS11出来之后,这两个属性被废弃,取而代之的就是safeArea的概念,safeArea是描述你的视图部分不被任何内容遮挡的方法。 它提供两种方式:safeAreaInsets或safeAreaLayou

2017-12-22 15:05:23 1496

原创 测试开发-iOS测试之移动端测试用例设计总结

一、安装/卸载1、真机上安装、卸载、高版本覆盖安装、低版本覆盖安装、卸载后安装高版本;安装关注点:版本号、渠道号、数字签名(用抓包工具辅助查看)、安装成功后启动向导、安装过程中对意外情况的处理(取消、死机、重启、断电、内存不足、断网)、安装进度条、主要功能流程; 卸载关注点:卸载过程中的意外情况处理(取消、死机、重启、断电、内存不足、断网)、卸载进度条; 2、第三方软件协助安装、卸载、高版本覆盖

2017-11-01 16:05:42 621

原创 测试开发-RESTful 架构详解

REST – REpresentational State Transfer 直接翻译:表现层状态转移。这个中文直译经常出现在很多博客中。但是谁听得懂“表现层状态转移”?我自己也困惑了很久,查询了很多资料,还算清晰的理解。分享如下: @Ivony 老师的一句话概括很精辟: URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。— 简洁版 —REST不是”rest

2017-11-01 14:02:40 463

原创 Python-实现九宫格

分享 数独 Python算法 话不多说,脚本如下:代码可以直接用python运行。#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2017/9/29 下午2:09# @Author : dongjingyi# @Site : # @File : sudu.py# @Software: PyCharm__aut

2017-09-29 15:07:35 11079

原创 自动化-Selenium WebDriver相关技术点总结

前端工具:FireBug&FirePathsetuptools是Python Enterprise Application Kit (PEAK)的一个副项目,它是Python的distutilsde工具的增强工具,可以让程序员更方便的创建和发布Python包,特别是那些对其他包有依赖性的状况。easy_install命令是由PEAK开发的setuptools包里带的一个简易安装命令,因此使用easy

2017-09-05 15:07:17 1059

原创 Linux - 基本操作总结整理

Linux启动过程Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 1.内核的引导。 2.运行 init。 3.系统初始化。 4.建立终端 。 5.用户登录系统。init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab。 Upstart: init,CentOS 6, 配置文件: /etc/initta

2017-08-22 14:33:10 1179

原创 其他-2017年流行的自动化测试工具

SeleniumSelenium 框架是 Web 测试自动化团队测试响应式网页设计或独立网站的最佳选择。 它包括 Selenium IDE,Selenium Remote Control 和 Selenium Grid 等工具,用以测试 Web 应用程序。 Selenium IDE 是 Selenium 脚本的集成开发环。Selendroid的优点完全兼容JSON线协议 需要对被测试应用进行更改才

2017-07-25 10:11:53 1786 1

原创 IOS开发-基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建

导引iOS自动化测试一直使用的appium,iOS系统升级至10.0 Xcode8.0之后,改用WebDriverAgent代理服务作为server,编写了一套基于WebDriverAgent服务 app客户端自动化框架。并实现了自动化测试app的demo。一:整体框架设计首先是WebDriverAgent服务原理以及WDAClient以及ruby测试脚本调用框架图如下: 二:WebDriverA

2017-07-20 15:52:37 3654

原创 ISTQB认证-关于ISTQB一些知识点总结

如果要转载请注明 原文链接哦! http://blog.csdn.net/maxdong24ISTQB知识点总结:注释: K1:表示一般理解 K2:表示一般掌握 K3:表示重点掌握并能够应用1.导致软件缺陷的原因(K2) 缺陷是错误的结果,更精确地说,缺陷是错误的表现。当缺陷被执行时会导致失效的发生。2.软件测试在软件开发、维护和使用中的角色(K2) 软件测试是软件开发过程中关键的质量保证

2017-07-18 16:50:24 5883

原创 Unity3D 12-UGUI与NGUI的区别与优缺点

1. NGUI与UGUI的区别1) UGUI的Canvas 有世界坐标和屏幕坐标; 2) UGUI的Image可以使用material; 3) UGUI通过Mask来裁剪,而NGUI通过Panel的Clip; 4) NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层; 5) UGUI 不需要绑定Co

2017-07-05 14:40:07 1334

原创 Unity3D 11-SceneManager场景管理用法总结

一、Unity关卡Unity 使用过程中关卡加载和卸载是大多数三维引擎都要提供的基本功能。 因为关卡切换在游戏中非常常用。 在之前的版本中Unity的关卡切换使用的是:Application.loadedLevel();看看Application类,此时这个类的功能比较繁杂,比较多。只看与关卡相关的: [Obsolete("Use SceneManager.LoadScene")]

2017-07-04 16:58:39 50987 1

原创 Unity3D 10-文件夹目录架构

一:几个特殊文件夹介绍1.EditorEditor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论多少个叫Editor的文件夹都可以。Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放在这里,或者是一些编辑时用的DLL。 比如我们

2017-07-04 14:37:22 2725

原创 Unity3D 09-XML文件创建,读取,修改,添加

今天在工作之余学习了一下关于Unity中关于XML的部分。 在这里要注意添加两个命名空间,如下:一、xml的解析首先新建一个xml,可以命名为item.xml,拖进assets里面,内容如下:<item> <item1> <id>1</id> <name>china</name> <year>2016</year> </item1> <item2> <i

2017-07-04 11:04:04 843

原创 Unity3D 08-Android加密DLL

加密原理Unity3D 是基于 Mono的,我们平时写的 C# 脚本都被编译到了 Assembly-CSharp.dll ,然后 再由 Mono 来加载、解析、然后执行。 Mono 加载 Assembly-CSharp.dll 的时候就是读取文件到内存中,和平时读取一个 游戏资源 文件没什么区别。 为了防止别人破解,我们会对游戏资源加密,简单点的 比如修改文件的一个字节 或者 位移一下 。只

2017-06-30 17:12:05 754

原创 Unity3D 07-日志、文本打印

1.Debug.Log(“hello”);2.打开控制台查看日志:ctrl+shift+c3.输出一个位置的坐标(需要转换成字符串.ToString())Vector3 worldPosition = hc.transform.TransformPoint(unityPosition); Debug.Log("worldPosition" + worldPosition.ToString());

2017-06-29 10:45:14 1913

原创 Unity3D 06-根据Transform、GameObject和Tag获取子对象集合

导引:因为项目中难免要多次进行获取子对象或者子对象的集合,所以写一个单独的类,用来做这些操作。然后再实际的项目中,只需要使用 transform 或者 gameobject 调用这些方法就可以快速的得到这些数据,而并不需要自己在每个单独的类里面都写上一遍。代码如下:using System; using System.Collections.Generic; using System.Li

2017-06-29 10:34:05 2486

原创 Unity3D 05-理解Unity的新GUI系统(UGUI)

理解Unity的新GUI系统(UGUI)Unity GUI 链接:UnityEngine.UI系统基础类架构图 Unity GUI 链接:UnityEngine Event & EventSystem系统架构图

2017-06-28 14:48:03 960

原创 Unity3D 04-GameObject,Component,Time,Input,Physics

Unity3D是一个Component-Based的游戏引擎,并且为GamePlay Programmer提供了很多游戏性层上的支持。 1.可以在图形界面上设计动画状态转换的Animator。 2.可以直接在场景编辑器中方便进行调整的Collider。 3.可以动态调整动画曲线的Animation。 总的来说,Unity是一个架构比Cocos2d-x精巧许多的游戏引擎。但是很遗憾的是,Uni

2017-06-28 14:18:33 642

原创 Unity3D 02-基类MonoBehaviour/自带函数以及脚本执行的生命周期

官方给出的脚本中事件函数的执行顺序如下图:Unity系统自带函数:using UnityEngine; using System.Collections; public class test : MonoBehaviour { void Awake() { print("Awake"); } void OnEnable()

2017-06-28 11:34:56 1144

原创 Unity3D 03-代码及效率优化总结

1、在使用数组或ArrayList对象时应当注意:length = myArray.Length; for(int i=0;i<length;i++) { } 避免for(int i=0;i<myArray.Length;i++) { } 2、如果没有必要每帧都处理,则可以每隔几帧处理一次:void Update(){ if(Time.frameCount%6==0)

2017-06-28 10:54:22 466

原创 Python学习07-Python2.x与3​​.x版本区别总结

Python的3​​.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。 为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向P

2017-06-18 14:14:15 645

原创 Python学习06-文件I/O

读取键盘输入Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。如下: raw_input inputraw_input函数raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):#!/usr/bin/python# -*- coding: UTF-8 -*- str = raw_input("请输入:");print

2017-06-18 11:44:40 496

原创 Python学习05-函数和模块总结

Python 函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量

2017-06-16 10:10:59 970

空空如也

空空如也

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

TA关注的人

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