05 2020 档案

摘要:1.View Results Tree 构造请求 查看结果: 查看结果树支持好几种语法,可以通过正则表达式等方式提取一些内容 正则表达式: jsonpath语法 2.聚合报告,Aggregate Report 请求一次: 请求两次: 开启一个python服务: sudo python3 -m htt 阅读全文
posted @ 2020-05-29 12:39 zhaikunkun 阅读(239) 评论(0) 推荐(0)
摘要:并发:没有严格意义上的并发。并发总有先后,无论差距是1毫秒还是1微秒,总有一个时间差。所以并发讲的是一个时间范围内,比如1s内;目的是测试数据库和程序对并发操作的处理。 举例: 1.多用户在系统上进行同一操作,比如双11,大家针对同一商品进行秒杀 2.多用户在系统上进行不同操作,比如双11,大家针对 阅读全文
posted @ 2020-05-28 18:51 zhaikunkun 阅读(520) 评论(0) 推荐(0)
摘要:1.断言多了会影响压力机的性能么? 会影响一点,毕竟是计算 2.review被测接口应用是否全部跑通,跑通后,编写自动化压测脚本 3.性能监控平台 部署方式:Docker 数据存储:InfluxDB 数据收集:JMeter Backend Listener 图形展示:Grafana 4.压测执行计划 阅读全文
posted @ 2020-05-28 18:04 zhaikunkun 阅读(205) 评论(0) 推荐(0)
摘要:1.压测执行 压测脚本编写:压测一般分为录制和压测脚本编写, 录制一般只能录制简单的页面,对于逻辑复杂的录制下来就比较乱,因此更倾向于使用脚本压测; url在jmeter测试中可以当作是一个接口 用户并发与数据传递: 不挂token是无效的压测接口,因此数据传递也是非常重要的 压测结果分析、性能监控 阅读全文
posted @ 2020-05-28 17:39 zhaikunkun 阅读(238) 评论(0) 推荐(0)
摘要:1.性能测试基本概念 为什么要做性能测试? 满足用户使用需求:网站访问量大崩溃,比如12306、微博、外卖 最小化成本:新服务上线不知道部署多少台服务器 评估应用系统性能,给运维做系统容量规划提供依据,给开发提供应用调优参考 什么是性能测试? 模拟多个用户的操作对服务器硬件性能的影响 TPS(Tra 阅读全文
posted @ 2020-05-28 16:40 zhaikunkun 阅读(116) 评论(0) 推荐(0)
摘要:1.minicap+python 实现录屏功能,minicap为stf工具的一个工具 2.html页面数据提取,使用BeautifulSoup工具或者正则 3.性能测试工具开源:ngrinder 阅读全文
posted @ 2020-05-22 17:17 zhaikunkun 阅读(167) 评论(0) 推荐(0)
摘要:1.http basic 主要关注authorization charles抓包 实现脚本: import requests from requests.auth import HTTPBasicAuth def test_author(): r = requests.get('http://htt 阅读全文
posted @ 2020-05-18 19:03 zhaikunkun 阅读(165) 评论(0) 推荐(0)
摘要:1.cookie简介 2.第一种:通过请求头信息传递 Cookie 首字母要大写,不是cookies,写的时候要注意⚠️⚠️ import requests def test_demo(): url = "http://httpbin.testing-studio.com/cookies" head 阅读全文
posted @ 2020-05-18 18:46 zhaikunkun 阅读(831) 评论(0) 推荐(0)
摘要:1.schema考验 json结构体的字段是什么类型的,他的范围,匹配规则,可以使用jsonschema来实现 比如声明一个json中的字段必须是string类型 实现方式:使用python第三方库 使用场景:开发一次改动代码的时候将响应值string类型改成了int类型,这个时候有可能造成客户端解 阅读全文
posted @ 2020-05-18 18:32 zhaikunkun 阅读(381) 评论(0) 推荐(0)
摘要:1.响应结果 对于请求头的断言 def test_header(self): r = requests.get('http://httpbin.testing-studio.com/get', headers={"h": "mydemo"}) print(r.text) print(r.json() 阅读全文
posted @ 2020-05-18 18:02 zhaikunkun 阅读(1363) 评论(0) 推荐(0)
摘要:1.json请求构造 json形式返回结果对比: 注意header也不一样,content_type 表单形式返回结果: 2.xml请求 request 没有给我们提供对于xml的封装,所以一般我们发送时使用的是data=进行发送 可以使用第三方库提供的,比如:mustache等 对于比如企业微信中 阅读全文
posted @ 2020-05-18 17:17 zhaikunkun 阅读(185) 评论(0) 推荐(0)
摘要:1.请求目标构造 2.请求参数构造 def test_get(self): payload = {"level": 1, "name": 'zhaitiantian'} r = requests.get('http://xxx) print(r.text) assert r.status_code 阅读全文
posted @ 2020-05-18 17:08 zhaikunkun 阅读(579) 评论(0) 推荐(0)
摘要:1.测试框架基本能力 项目管理:pip、virtualenv 用例编写:pytest 领域能力:app、web、http 执行调度:pytest、pycharm、shell、jenkins 测试报告:allure2 2.HTTP测试能力 请求方法构造:get、post、put、delete、head 阅读全文
posted @ 2020-05-18 17:00 zhaikunkun 阅读(323) 评论(0) 推荐(0)
摘要:1.mitmproxy扩展机制 参考官网: mitmproxy addons example: https://docs.mitmproxy.org/stable/addons-examples/#example-complexhar_dumppy 2.抓包-map local 以雪球app为例 1 阅读全文
posted @ 2020-05-18 09:51 zhaikunkun 阅读(1039) 评论(0) 推荐(0)
摘要:1.mitmproxy工具介绍: 命令行工具 最大亮点区别于其他如fiddler、cahrles工具的是可以用python定制一些内容和mitmproxy进行交互 也需要安装一个证书,如何安装证书参考:https://blog.csdn.net/qq_33913982/article/details 阅读全文
posted @ 2020-05-17 20:26 zhaikunkun 阅读(488) 评论(0) 推荐(0)
摘要:1.jq命令行工具 jq官网: https://stedolan.github.io/jq/ jq的语法可以参考官网的文档 jq的安装 mac 可以使用brew 进行安装 linux、windows可以使用git clone 源代码进行编译安装 jq的基础语法 1> jq ‘.[0]’ :取数组里边 阅读全文
posted @ 2020-05-17 20:24 zhaikunkun 阅读(524) 评论(0) 推荐(0)
摘要:1.有两个文件 a.txt b.txt: a文件内容包含内容类似: b文件内容包含内容类似: a.txt b.txt test aaa abc bbb testabc abc testabc 用pyhton语言完成文件操作,并将文件中拥有相同内容的行输出到一个新建的文件c.txt 中 解法一: 考察 阅读全文
posted @ 2020-05-15 21:11 zhaikunkun 阅读(923) 评论(0) 推荐(0)
摘要:1.写一个bash脚本,找出目录\root\test中子目录下所有文件内容包含test的文件,并将此文件转移到已经存在的目录\root\export中 文件目录结构类似于 test 1.txt 2.txt test1 1.sql 2.sql test2 --1.log --2.log 脚本如下: # 阅读全文
posted @ 2020-05-15 16:25 zhaikunkun 阅读(547) 评论(0) 推荐(0)
摘要:cookie:浏览器接受服务器的Set_Cookie指令,并把cookie保存到电脑上,每个网站保存的cookie只作用于自己的网站 session:数据存储到服务端,只把关联数据的一个加密串放到cookie中标记 token的应用场景: 1)凭借认证信息获取token,或者通过后台配置好token 阅读全文
posted @ 2020-05-13 16:45 zhaikunkun 阅读(339) 评论(0) 推荐(0)
摘要:get方法与post方法的区别 1.GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中. 2.GET提交的数据大小有限制(因为浏览器对URL的长 阅读全文
posted @ 2020-05-12 19:56 zhaikunkun 阅读(307) 评论(0) 推荐(0)
摘要:1.http报文结构 请求与响应都是由 状态行、首部行、实体主体3部分组成的 不同的是状态行的内容不同 2.请求报文方法 常见的是get、post请求 3.常见状态码 4.请求与响应格式分析 执行如下: 阅读全文
posted @ 2020-05-12 19:44 zhaikunkun 阅读(86) 评论(0) 推荐(0)
摘要:1.charles代理配置 配置代理 获取证书 安装证书 信任证书 匹配https要在charles 代理设置中加上*会更稳定 chrome浏览器推荐一个好用的管理代理工具的插件 如何安装的教程:https://www.pianshen.com/article/12551012552/ 大家代理访问 阅读全文
posted @ 2020-05-12 18:55 zhaikunkun 阅读(456) 评论(0) 推荐(0)
摘要:1.添加环境变量 环境变量与全局变量 变量引用方法:{{variableName}} 步骤:把url中的公共部分设置成变量,测试的时候直接引用变量就可以了 设置成功后点击小眼睛查看 选择环境变量,使用环境变量 也可以通过以下方式设置环境变量: 2.添加cookie cookie可以用来鉴权 post 阅读全文
posted @ 2020-05-12 18:22 zhaikunkun 阅读(1026) 评论(0) 推荐(0)
摘要:1.postman简单介绍 postman可以快速的构建请求,可以保存,以后方便使用,可以设置环境变量方便不同的环境使用一套测试用例, 做接口测试非常方便 鉴权,设置token 还可以写一些请求发送之前可以执行的js脚本 添加断言 2.get请求 1)填写请求方式:Get 2)填写请求url 3)填 阅读全文
posted @ 2020-05-12 17:44 zhaikunkun 阅读(269) 评论(0) 推荐(0)
摘要:1.七层模型与常见协议 2.协议分析工具 网络监听、代理、协议客户端工具 tcpdump+wireshark:利用在网络层监听来抓到数据包,并且进行分析的工具 3.tcpdump +wiresharp+curl命令工具的使用 linux下非常经典的一个工具, 运行需要sudo root权限, tcp 阅读全文
posted @ 2020-05-12 15:59 zhaikunkun 阅读(222) 评论(0) 推荐(0)
摘要:雪球案例: 1)打开应用 2)点击“交易” 3)点击“A股开户” 4)再输入用户名和密码 5)点击“立即开户” 6)退出应用 代码如下: 要记住切换上下文!记住! 运行报错:原因是打开开户页面的时候类似于在web页面重新又打开了一个新的页面,因此没有找到当前窗口 2.一般会遇到的坑 当有多个浏览器需 阅读全文
posted @ 2020-05-11 14:10 zhaikunkun 阅读(345) 评论(0) 推荐(0)
摘要:1.chrome浏览器控制台的功能 加载的时候绿色条、蓝色条是根据谁先加载默认排序的 preserve log:保存日志 disable cache:建议钩上,不然速度就比较快的加载,因为有缓存 录制,清空 时间线 蓝线:dom 加载完成 红线:所有资源加载完成 捕获:查看加载图片 根据 water 阅读全文
posted @ 2020-05-11 13:35 zhaikunkun 阅读(559) 评论(0) 推荐(0)
摘要:1.http和https的区别,https链接加密方式是对称还是非对称? 1)https里面是要有证书的,http并没有证书,证书的作用是证明你是这个网站的拥有者,谁去证明?最顶级的CA去帮你证明,这些顶级CA都是浏览器、操作系统本身就自动帮你集成,而且自动添加到信任里面去 2)https要兼顾安全 阅读全文
posted @ 2020-05-07 18:19 zhaikunkun 阅读(111) 评论(0) 推荐(0)
摘要:1.混合页面测试 原生页面里面嵌入h5页面 需求股票 更多券商这些都是原生组件 如何判断页面是webview呢? 1)断网查看 2)看加载条 3)看顶部是否有关闭按钮 4)下拉刷新页面是否刷新 5)下拉刷新的时候是否有网页提供方 6)用工具查看chrome://inspect 原生页面断网后会有缓存 阅读全文
posted @ 2020-05-07 18:08 zhaikunkun 阅读(213) 评论(0) 推荐(0)
摘要:android纯 web页面测试 1. 前端页面主要有以下3种类型: 原生应用 混合应用 web应用 比如:m.baidu.com 百度m站,一般每个app都会有一个m站,这个页面和浏览器上打开的页面非常类似 M站和web都是一样的 都是用的selenium那一套去定位 原生 native app: 阅读全文
posted @ 2020-05-06 09:32 zhaikunkun 阅读(288) 评论(0) 推荐(0)
摘要:2.卡顿分析 3.常用快捷键 但是要注意 影响因素一定不是唯一的 full gc内存回收 也可以使用adb命令但是不如systrace工具强大 建议多学一下systrace 阅读全文
posted @ 2020-05-04 17:21 zhaikunkun 阅读(62) 评论(0) 推荐(0)
摘要:1.卡顿由什么造成的? 卡顿不是一个影响因素影响的,是很多因素影响的,比如前面学到的cpu 内存还有网络都会影响到卡顿 2.分析工具-sdk自带工具 systrace 路径:sdk/platform-tools/systrace 需要python2.7环境 如果只有一个设备就可以不输入设备号了 wi 阅读全文
posted @ 2020-05-04 17:19 zhaikunkun 阅读(352) 评论(0) 推荐(0)
摘要:1.CPU与GPU的关系 cpu处理一个view,将处理内容放入graphics driver中间件,中间件会传递给Gpu,但是会有一个问题,cpu可能会处理过快,gpu可能会处理过慢,然后就需要一个缓存,就是下面那个绿色的,缓存类似于队列的一种东西,然后让接受自cpu的东西排队,然后Gpu再去一个 阅读全文
posted @ 2020-05-04 17:03 zhaikunkun 阅读(271) 评论(0) 推荐(0)
摘要:1.官方文档获取shell脚本 1)检测是否有设备,如果没有就退出;检测是否有stf平台链接,如果没有就退出; 2) add_device就是设备的授权操作 3) remote_connect把已经授权的设备拉到本地,进行使用,本质就是adb connect操作 就是把远程设备拉到本地 4)remo 阅读全文
posted @ 2020-05-04 15:45 zhaikunkun 阅读(692) 评论(0) 推荐(0)
摘要:1.stf解决什么问题 远程设备手动调试 远程设备自动化调试 openstf是一个手机设备管理平台,可以对手机进行远程管理、调试、远程手机桌面监控等操作 2.如何让其他设备访问 开启 --public-ip xxx 在其他设备上访问:ip:7100 3.stf具体是用来做什么的呢?如下图: 官方AP 阅读全文
posted @ 2020-05-04 11:15 zhaikunkun 阅读(821) 评论(0) 推荐(0)
摘要:3. 分析demo.yml saveScreen: true 进行截图,false不进行 maxTime: 10800 最大时间 maxDepth: 10 最大深度 在文件中添加包名: testcase中添加从行情页面开始点击 只对上半部分选取一部分可点击的元素进行遍历 contains只要部分包含 阅读全文
posted @ 2020-05-03 22:24 zhaikunkun 阅读(311) 评论(0) 推荐(0)
摘要:1.生成详细网页报告 在存放jar包的文件夹中执行该命令: java -jar appcrawler-2.4.0-jar-with-dependencies.jar 生成帮助文档: 1)运行命令: java -jar appcrawler-2.4.0-jar-with-dependencies.ja 阅读全文
posted @ 2020-05-03 22:23 zhaikunkun 阅读(322) 评论(0) 推荐(0)
摘要:1.AppCrawler各参数设置等 后面的简写形态比较重要 first和last就是从selected中选取 tagLimitMax是非常重要的,因为平时app中经常会有这种情况 黑名单:不遍历哪些元素,只要写了改元素就不会被遍历到 深度:当我点击一个页面进入一个新的页面时,或者是说新的activ 阅读全文
posted @ 2020-05-03 22:11 zhaikunkun 阅读(228) 评论(0) 推荐(0)
摘要:1.AppCrawler介绍 就像扫地机器人一样,你去指定扫哪个地方它就可以自己去扫;而不是像扫帚一样指哪儿扫哪儿, AppCrawler就是app爬虫的意思 源码地址:https://github.com/seveniruby/AppCrawler 可以通过html文件报告去分析用例执行情况 2. 阅读全文
posted @ 2020-05-03 22:00 zhaikunkun 阅读(339) 评论(0) 推荐(0)
摘要:1.Android monkey 测试工具 比如雪球app,数据量庞大,股票有好几万股,如果进行自动化测试的话 耗时将非常大,并且字段是太多了 编写很少的代码和参数就能获得随机点的效果,节省人力和物力 原生monkey100个事件,5s内就可以执行完毕,并且只需要简单的指定几个参数即可 ,但是 缺点 阅读全文
posted @ 2020-05-03 21:50 zhaikunkun 阅读(444) 评论(0) 推荐(0)
摘要:1. appium、selenium都是正向的遍历 2.移动端业务问题,以雪球app为例 业务线众多 业务流程复杂 依赖传统券商一些资源 雪球app存在的问题: 存在股票信息字段内容的丢失或者数据异常 微信分享不可用 用户网络慢时发出请求后退出当前页面发生崩溃 某些界面在4.4和5.0的系统上操作体 阅读全文
posted @ 2020-05-03 21:43 zhaikunkun 阅读(1058) 评论(2) 推荐(0)
摘要:1.网络分析 adb shell dumpsys netstats 在模拟器中使用此命令会报错:这个时候应该使真机 active UID interfaces和上面的Active interfaces是一样的,包含了wifi和4g使用综合情况 2.开发统计信息/xt统计信息 3.找到应用UID ma 阅读全文
posted @ 2020-05-03 13:53 zhaikunkun 阅读(477) 评论(0) 推荐(0)
摘要:接内存统计01。。。 同一时间有好多个100%,有可能多个应用占用内存,因此很难排除干扰;所以根据不同版本内存大小做对比才有意义 阅读全文
posted @ 2020-05-03 13:46 zhaikunkun 阅读(89) 评论(0) 推荐(0)
摘要:1. rom就是手机内存 虚拟内存:并没有什么用,实际内存要比虚拟内存重要的多;衡量虚拟内存大小无太大用处,无法知道分配的物理内存大小 实际内存: 各个进程都有一个rss,然后可以加在一起时是大于总的RSS的,因为他们不是按比例分配的;各进程的rss相加,会超过系统内存使用量 实际使用的物理内存(p 阅读全文
posted @ 2020-05-03 13:42 zhaikunkun 阅读(384) 评论(0) 推荐(0)
摘要:1.w3c协议 w3c给浏览器的协议如下: 这些浏览器本质上都是w3c的标准,这些指标全部都在w3c里 具体细节可以访问官网,图中显示的只是很小的一部分;要挖掘的知识点是非常多的,可以自己去研究 从前往后: unload:卸载时间 redirect:重定向时间,用户注销登录时返回主页面和跳转到其他网 阅读全文
posted @ 2020-05-03 11:03 zhaikunkun 阅读(137) 评论(0) 推荐(0)
摘要:1.接口性能分析 代理:a到b,要先到Charles,可以抓到请求,和回收的内容 抓包工具:我们主动的向一个网址发送一个请求,然后给我们返回数据;或者监听端口数据 wiresharp是一个图形化的抓包工具;3次握手,4次挥手都可以以图形化的界面呈现给我们 如果想在linux这种无UI、上操作,就可能 阅读全文
posted @ 2020-05-03 10:50 zhaikunkun 阅读(296) 评论(0) 推荐(0)
摘要:1.基本的测试cheklist和手段 但不限于这些,具体的是根据业务来决定的 2.专项测试(用户维度) 崩溃(Crash,弱网) 卡顿(掉帧、gc、cpu) 响应慢(启动时间、交互时间、H5加载) 发热(cpu,mem、io、network、gps等硬件的使用) 掉电快(硬件占用) 兼容性问题(机型 阅读全文
posted @ 2020-05-03 10:29 zhaikunkun 阅读(396) 评论(0) 推荐(0)
摘要:1.关于pytest.fixture @pytest.fixture(scope="module", autouse=True) 其中autouse=True,作用域默认是function,加了scope=module之后作用域就是module 运行结果: 2.conftest.py文件中是不能写c 阅读全文
posted @ 2020-05-01 15:33 zhaikunkun 阅读(194) 评论(0) 推荐(0)