摘要: plist关键字段: CFBundleIdentifier:应用包名、唯一标识 CFBundleVersion:文件版本号,可以每次发版本递增 CFBundleShortVersionString:appstore显示版本号,每次app store发版递增 CFBundleName:默认设置是等同于 阅读全文
posted @ 2018-11-21 00:20 AmyZYX 阅读(6626) 评论(0) 推荐(0)
摘要: 背景: 最近跟进的项目会封装aws S3资源管理细节,对外提供获取文件上传凭证的API,业务方使用获取到的凭证信息直接请求aws进行文件上传。因此,测试过程需要验证S3文件上传的有效性。aws官网有提供各个语言的sdk,这里直接使用python sdk进行测试。 aws的文档很清晰( "quick 阅读全文
posted @ 2018-10-25 00:36 AmyZYX 阅读(8334) 评论(0) 推荐(0)
摘要: Referrer referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于Web Analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。 但是,这个字段同时会造成用户敏感信息泄漏(如:带有敏 阅读全文
posted @ 2018-09-28 00:35 AmyZYX 阅读(47404) 评论(0) 推荐(0)
摘要: 效果: 方法: 添加:打开finder后,长按command,可以将其他app拖到菜单栏。 删除:同理,长按command,将不需要的图标拖出菜单栏即可。 PS:强烈推荐gotoshell这个小工具,可以很方便的打开系统自带终端或者iterm2,并且会自动切换到当前目录。 阅读全文
posted @ 2018-09-22 21:40 AmyZYX 阅读(963) 评论(0) 推荐(0)
摘要: 背景 最近刚接手一个katalon编写的UI自动化项目,页面最近刚改版,已有用例很多查找元素失败。了解到katalon元素定位支持xpath,所以直接使用chrome开发者工具打开目标页面+获取xpath,进行xpath更新,更新后的xpath还是经常定位元素失败。 网上搜索资料后,发现katalo 阅读全文
posted @ 2018-09-22 16:40 AmyZYX 阅读(2583) 评论(0) 推荐(0)
摘要: Cookie主要属性 Cookie主要属性: path domain max age expires:是expires的补充,现阶段有兼容性问题:IE低版本不支持,所以一般不单独使用 secure httponly JS不能读写HttpOnly Cookie 属性之间使用英文分号和空格("; ")连 阅读全文
posted @ 2018-09-20 00:33 AmyZYX 阅读(6789) 评论(0) 推荐(0)
摘要: ngx\_http\_realip\_module模块 realip模块作用:当本机的nginx处于反向代理的后端时可以获取到用户的真实ip。可以让accesslog记录用户真实IP地址。 set\_real\_ip\_from —— 设置反向代理服务器,即信任服务器IP real\_ip\_hea 阅读全文
posted @ 2018-09-08 18:51 AmyZYX 阅读(1285) 评论(0) 推荐(0)
摘要: 1.utf8与utf8mb4(utf8 most bytes 4) MySQL 5.5.3之后增加了utfmb4字符编码 支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符 最多使用四个字节存储字符 utf8mb4是utf8的超集并完全兼容utf8,能够用四个字 阅读全文
posted @ 2018-09-06 00:10 AmyZYX 阅读(61567) 评论(1) 推荐(9)
摘要: APK文件只能包含一个AndroidManifest.xml文件,但Android Studio项目可以包含多个文件(通过buildSrc、导入的库引入)。因此,在构建应用时,Gradle构建会将所有清单文件合并到一个封装的APK的清单文件中。 清单文件合并优先级 清单合并工具 可以使用Merged 阅读全文
posted @ 2018-08-14 00:19 AmyZYX 阅读(1851) 评论(0) 推荐(2)
摘要: 最近产品提了一个紧急需求:webview加载的URL,需要支持视频播放。 为了快速完成需求,功能实现上直接使用系统自带播放器播放视频。由于是自带播放器,需要进行兼容性测试,过程发现了不少问题,这里分享一下: 1、播放视屏的时候,程序闪退——Android7.0以上; 2、点击全屏播放无效——Andr 阅读全文
posted @ 2018-08-09 00:49 AmyZYX 阅读(1085) 评论(0) 推荐(0)
摘要: Android4.4(KitKat)开始,使用Chrome开发者工具可以帮助我们在原生的Android应用中远程调试WebView网页内容。具体步骤如下: (1)设置Webview调试模式 可以在Activity的init进行如下设置,WebView类包含一个公共静态方法,可应用于项目中的所有Web 阅读全文
posted @ 2018-07-31 20:50 AmyZYX 阅读(2517) 评论(3) 推荐(0)
摘要: TCP端口的连通性 方法一:TCP协议是面向连接的,可以直接通过telnet命令连接 方法二:使用nc(netcat)命令 nc相关option: UDP端口的连通性 UDP协议是无连接的,不需要握手建立连接,数据发送后,server端也不会返回确认信息。 方法一:使用nc(netcat)命令 总结 阅读全文
posted @ 2018-07-08 20:10 AmyZYX 阅读(11560) 评论(0) 推荐(1)
摘要: 信息查看 文本操作 (1)文本过滤:grep 常用option: (2)查看尾部N行:tail (3)查看文件头N行:head 文件操作 (1)本地文件复制到远程服务器 (2)压缩和解压缩 进程/线程类 (1)查看端口占用: (2)kill进程 (3)查看进程启动时间 (4)查看应用进程号 阅读全文
posted @ 2018-07-08 19:16 AmyZYX 阅读(213) 评论(0) 推荐(0)
摘要: git上clone一个Gradle项目,使用AS的gradle sync报错如下: 原因:本地gradle版本不匹配。 解决方法:修改根目录下的build.gradle 中的classpath为本地已经下载的gradle版本或者本地下载安装依赖版本。 阅读全文
posted @ 2018-07-08 18:47 AmyZYX 阅读(3500) 评论(0) 推荐(0)
摘要: 一、 Appium工作原理 基本工作流程如下: 1. Appium提供了一套web服务,Appium起一个Server(4723端口),用于与脚本client通信。 2. server接收web driver(即appium client)标准请求,解析请求内容,调用对应的框架响应操作。 3. Ap 阅读全文
posted @ 2018-07-08 18:01 AmyZYX 阅读(550) 评论(0) 推荐(0)
摘要: 1.AndroidSDK路径查看 (1)AndroidStudio: 菜单栏AndroidStudio Preferences Appearences&Behavior System Settins Android SDK tab中的SDK Location。 (2)Eclipse: 菜单栏Ecli 阅读全文
posted @ 2018-07-07 11:58 AmyZYX 阅读(4023) 评论(0) 推荐(0)
摘要: 按照网上教程配置完appium环境后,真机跑自动化过程,遇到如下报错: appium报错如下: 首先,使用appium doctor进行配置检查 appium doctor校验结果,ANDROID_HOME等路径均已经配置: 其次,检查环境变量$ANDROID_HOME和aapt,也是OK的。 最后 阅读全文
posted @ 2018-07-07 00:22 AmyZYX 阅读(8939) 评论(0) 推荐(0)
摘要: 实际工作过程,特别是APP测试,经常会遇到无法稳定重现问题,这种问题,部分研发同学甚至会抵赖不愿意修改,那么,该如何处理呢?楼主根据经验,梳理了以下几点: 1、按照问题发生场景,尝试重试; 2、问题首次出现后,让研发同学增加监控日志,方便分析排查问题,后续测试重点关注; 3、根据问题日志,确定功能模 阅读全文
posted @ 2018-07-04 00:16 AmyZYX 阅读(828) 评论(1) 推荐(0)
摘要: REST(Representational State Transfer)是一种Web服务的架构,其目的是创建具有良好扩展性的分布式系统。它的约束包含: 1. 使用C/S模型。client和server之间通过一个统一的接口来互相通讯。 2. 层次化的系统。分层系统通过限制组件的行为,将架构分解为若 阅读全文
posted @ 2018-06-30 19:20 AmyZYX 阅读(383) 评论(0) 推荐(0)
摘要: generator 生成器generator:一边循环一边计算的机制。 生成器是一个特殊的程序,可以被用于控制循环的迭代行为。python中的生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,可以使用next()函数和send()函数恢复生成器。 生成器类似于返回值为数组的一 阅读全文
posted @ 2018-06-29 00:55 AmyZYX 阅读(367) 评论(0) 推荐(0)