- 博客(88)
- 收藏
- 关注
原创 播放常见问题分析
这些问题有可能是推流端的问题,也有可能是播放器的问题,首先要先用别的播放器排查下,例如浏览器、VLC、ffplay等。引用播放器专栏文章结合央视频播放器TVKplayer对常见播放问题分析。央视频播放失败时会上报错误码,错误码可在tvkplayer公众号查询。首开是指从点击播放到视频第一帧渲染到端上的时间。视频闪屏原因-播放过程中会闪现其他画面。播放卡顿的表现-播放器渲染的帧率太低。
2023-08-09 19:18:15
605
原创 播放器架构
播放器:是指能读取、解析、渲染 存储在 本地 或者 服务器 上的音视频文件的 软件,或者电子产品功能特性读取(IO):“获取” 内容 -> 从 “本地” or “服务器” 上获取解析(Parser):“理解” 内容 -> 参考 “格式&协议” 来 “理解” 内容渲染(Render):“展示” 内容 -> 通过扬声器/屏幕来 “展示” 内容。
2023-08-09 19:17:24
192
原创 内建模块-hashlib、hmac
hashlib模块摘要算法简介python的hashlib提供了常见的摘要算法,如MD5、SHA1等等摘要算法又称为哈希算法、散列算法,它通过一个函数,把任意长度的数据转化为一个长度固定的数据串(通常用16进制的字符串表示),不是加密算法摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人修改过 (digest-文摘)摘要算法之所以能够指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但是通过di
2021-05-11 19:52:50
193
原创 内建模块-itertools
python的内建模块itertools提供了非常有用的用于操作迭代对象的函数 (iter- iteration- 迭代对象 tools- 工具)count()会创建一个无限的迭代器,会一直重复下去,只能按Ctrl+c退出>>> import itertools>>> natuals = itertools.count(1)>>> for n in natuals:... print(n)...123...c.
2021-05-11 19:52:15
250
原创 内建模块-base64、struct
base64模块base64是一种用64个字符来表示任意二进制数据的方法,常用于在URL、Cookie、网页中传输少量二进制数据。用记事本打开exe、jpg、pdf这些文件时,会看到一大堆乱码,因为二进制文件中包含很多无法显示和打印的字符,所以如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法,Base64是一种最常见的二进制编码方法。base64的原理首先准备一个包含64个字符的数组(A-Z,a-z,0-9,+,-)然后对二进制数据进行处理,每3个
2021-05-11 19:51:55
321
原创 内建模块-collections模块
collections是python内建的一个集合模块,提供了很多有用的集合类namedtupletuple可以表示不变集合,但是无法看出这个集合是用来表示什么的namedtuple是一个函数,用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素 (namedtuple-命名元祖)namedtuple可以很方便的定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用很方便>>> from
2021-05-11 19:51:18
160
原创 内建模块-datetime模块
datetime是python处理日期和时间的标准库获取当前日期和时间datetime模块下有一个datetime类,该类下的now()方法,会返回当前日志和时间,类型为datetime>>> from datetime import datetime>>> now = datetime.now() # 获取当前datetime>>> print(now)2015-05-18 16:28:07.198690>>>
2021-05-11 19:50:39
153
原创 内建模块-contextlib
在python中,读写文件这样的资源,必须在使用完毕后正确关闭他们,正确关闭文件资源的一个方法是使用try: f = open('/path/to/file', 'r') f.read()finally: if f: f.close()写“try…finally”非常繁琐,python的with语句允许我们非常方便的使用资源,而不用担心资源没有关闭with open('/path/to/file', 'r') as f: f.read().
2021-05-10 17:29:39
7039
原创 内建模块-urllib、XML、HTMLParser
urlliburllib提供了一系列用于操作URL的功能Geturllib的request模块可以非常方便的抓取url内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应例如,对一个url进行抓取,并返回响应from urllib import requestwith request.urlopen('https://api.douban.com/v2/book/2129650') as f: data = f.read() print('Statu
2021-05-10 17:23:18
224
1
原创 os库
新建目录os.mkdir(log_path)新建文件*删除目录及目录下的所有文件import shutilshutil.rmtree(log_path)如果只想删除目录的文件,不想删除目录,可以执行完以上语句后,再新建目录os.mkdir(log_path)移动目录下的文件import shutilshutil.move(‘原文件夹/原文件名’,‘目标文件夹/目标文件名’)os获取路径print os.path.dirname(file) # 返回当前.
2021-05-10 17:15:09
117
原创 logger库
# https://www.cnblogs.com/nancyzhu/p/8551506.htmlimport osimport timeimport loggingPATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))# 创建 log_pathnow = time.strftime('%Y%m%d%H%M%S') # 返回当前时间log_path = PATH('../log')
2021-05-10 17:13:59
228
原创 bash/shell基础
https://www.runoob.com/linux/linux-shell.htmlShell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言bash是shell的一种,全称 Bourne Again Shell,Bash 也是大多数Linux 系统默认的 Shell。shell和bashbash是tlinux下默认的shellsh是原本的shell分类交互式和非交互式bashlogin和nologin
2021-05-10 17:09:18
257
原创 YAML数据格式
yaml 官方网站:http://www.yaml.orgyaml 官方文档:http://www.yaml.org/spec/1.2/spec.htmlyaml介绍YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)实际是一种通用的数据串行化格式使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数
2021-05-10 16:47:37
1134
原创 xpath定位
https://www.runoob.com/xpath/xpath-tutorial.html路径表达式nodeName 选取次节点的所有子节点/ 从根节点选取// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置. 选取当前节点… 选取当前节点的父节点@ 选取属性选取未知节点* 匹配任何元素节点@* 匹配任何属性节点node() 匹配任何类型的节点选取若干节点a | b 选取所有a和b元素
2021-05-10 16:37:51
144
原创 ios设备操作命令
在mac电脑上操作ios设备文档libimobiledevicehttps://github.com/libimobiledevice/ideviceinstallerhttps://blog.csdn.net/mochacha_/article/details/105617328xcrunhttps://www.jianshu.com/p/f2cbc2fba8d8?utm_campaign=maleskine&utm_content=note&utm_med
2021-05-10 16:34:24
1150
原创 PyYaml库
https://pypi.org/project/PyYAML/PyYam是python的一个专门针对yaml文件操作的模块安装pip install pyyaml使用:import yamlpy2安装 :pip install yamlpyyaml的方法yaml.load():返回一个对象yaml.load_all():生成一个迭代器yaml.dump():将一个python对象生成yaml文档yaml.dump_all():将多个段输出到一个文件中Yaml文件读取
2021-05-10 16:26:12
403
原创 tidevice->ios不依赖xcodebuild启动wda服务
https://testerhome.com/topics/27758https://github.com/alibaba/taobao-iphone-device需先将python3升级到3.8以上https://www.python.org/downloads/release/python-387/点击 【macOS 64-bit Intel installer】下对应的python版本然后双击下载完成的python包进行安装默认的安装路径为:/Library/Frameworks/P
2021-05-10 16:22:06
3305
原创 wda
文章目录前置条件配置连接手机ClientSessionSession 操作 (operations-操作)元素查找元素行为(tap, scroll, set_text等)回调https://github.com/openatx/facebook-wda前置条件安装安装依赖brew install carthagebrew install nodebrew install libimobiledevice --HEAD克隆wda代码git clone https://githu
2020-09-22 11:19:06
5276
原创 正则表达式
字符精确匹配直接给出字符精确匹配字符类别匹配\d匹配一个数字\w匹配一个字母或者数字.匹配任意字符\s匹配一个空格(包括tab等空白符)字符数量匹配*表示任意个字符(包含0个)+表示至少有一个字符?表示0个或1个字符{n}表示n个字符{n,m}表示n-m个字符注意:数量匹配放到类别匹...
2019-08-01 11:47:01
262
原创 视频的软解硬解
硬解就是硬件解码,指利用GPU来部分代替CPU进行解码,软解就是软件解码,指利用软件让CPU来进行解码。两者的具体区别:硬件解码:是将原来全部交由CPU来处理的视频数据的一部分交由GPU来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了,当然,对于较好的处理器来说,比如i5 2320,或者AMD 任何一款四...
2019-06-28 14:58:43
3309
原创 安卓和iOS的区别
文章目录运行机制不同对app内存消耗的处理方式不同后台制度不同最高权限指令不同推送机制不同log日志的抓取方式不同灰度发版的机制不同审核机制不同其他测试相关运行机制不同IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。沙盒机制:概念:沙盒是一种安全机制,用于防止不同应用之间互相访问作用:就是存储数据,每个沙盒就相当于每个每个应用的系统目录核心:sandbox对应用程序执行各种...
2019-06-28 14:35:24
5157
2
原创 python内置函数
文章目录python内置函数abs():绝对值函数divmod():返回除数余数函数input():接收输入值函数open():打开文件函数staticmethod() :返回函数静态方法all() :判断参数是否都是Trueenumerate(): 将可迭代对象组合成索引序列int() :将字符串或数字转化为整型ord():返回参数的ASCLL码或Unicode 数值str() :转化为字符串a...
2019-06-20 10:05:05
946
原创 崩溃和ANR
文章目录常见崩溃类型快速抓取崩溃log和anr文件崩溃和ANR日志查看crash和anr问题的分析定位常见崩溃类型网络异常内存问题接口返回值错误手机特定类型错误渲染图片出现的问题https://www.cnblogs.com/jimmyfang/articles/4769300.htmlhttps://blog.csdn.net/wtyvhreal/article/details...
2019-06-13 10:59:38
2507
原创 APP安全性测试、apk反编译
文章目录安全测试点apk反编译https://www.jianshu.com/p/d79a30a7ed94https://blog.51cto.com/laoyinga/2155341安全测试点安装包apk反编译签名发布前校验一下签名使用的key是否正确,以防被恶意第三方应用覆盖安装等使用命令 jarsigner -verify -verbose -certs apk包路径...
2019-06-12 18:36:10
1690
1
原创 APP性能测试(启动速度、内存、CPU、FPS、GPU、耗电量)
文章目录启动速度内存CPUFPS(应用的使用流畅度)GPU渲染耗电量启动速度测试内容冷启动速度热启动速度完全启动速度有网启动速度无网启动速度主要测试冷启动和热启动测试标准测试标准:冷启动时间不超过1.5s, 热启动不超过1s测试方法方法1:通过FFmpeg录屏拆帧https://ffmpeg.zeranoe.com/builds/官网https://w...
2019-06-12 18:30:36
24299
4
原创 手游测试-学习笔记
文章目录游戏测试的主要内容游戏测试基本流程游戏测试用例游戏bug游戏弱网测试游戏功能性测试游戏接口测试游戏测试的主要内容功能测试主要验证功能是否符合需求设计主要考虑功能正确性,不考虑游戏底层结构及代码错误通常从界面着手测试,尽量模拟用户可能出现的操作性能测试测试点客户端CPU使用率客户端内存占用率客户端网络流量使用情况客户端耗电量客户端帧率(FPS)测试方...
2019-06-12 18:04:16
25904
9
原创 APP测试点
anr和crashanr:系统无响应crash:闪退oom:内存溢出app 安全性测试https://www.jianshu.com/p/d79a30a7ed94APP测试流程http://note.youdao.com/noteshare?id=18cc93f41f5aac0d754be6830bc0992f&sub=5C4E40E87D0547DC8D5DB06F...
2019-06-12 17:41:47
1756
原创 性能测试(基础、方法)
文章目录性能测试基础软件性能测试方法论性能测试的方法性能测试基础软件性能的不同视角用户视角管理员视角开发视角主要术语响应时间并发用户数吞吐量单位时间内系统处理的客户请求的数量性能计数器(资源利用率)描述服务器或操作系统性能的一些数据指标与资源利用率有关思考时间也称休眠时间指每个请求之间的间隔软件性能测试方法论SEI负载测试计划...
2019-06-12 17:34:17
885
原创 接口测试基础、流程、工具
文章目录接口组成什么是接口测试接口测试流程接口测试工具fiddlerpostmanpython开发接口组成请求(request)、响应(response)服务器(host)、路径(path)、参数(query)状态码(code)、请求类型(method)、请求时间(start)、响应时长(duration)、响应大小(size)、状态(status)什么是接口测试接口的由来连接前...
2019-06-12 17:28:05
25498
9
原创 测试用例(测试用例的编写、评审和管理)
文章目录测试用例介绍需求分析与测试点编写测试用例编写方法用例编写测试用例评审测试用例管理测试点划分的常用术语兼容性:在不同平台上的表现易用性:用户使用是否友好UI元素:界面布局测试用例介绍测试用例是什么是测试时使用的文档测试工作的核心一组在测试时输入输出的标准软件需求的具体对照测试用例有什么作用检验软件是否满足用户需求体现一个测试人员的工作量展现测试...
2019-06-12 17:06:06
6111
原创 系统测试(功能测试、性能测试、负载测试、压力测试、兼容性测试、安全测试、健壮性测试、配置测试、可用性测试、文档测试)
文章目录系统测试概述功能测试性能测试负载测试压力测试性能测试、压力测试、负载测试的关系兼容性测试安全测试健壮性测试配置测试可用性测试文档测试系统测试概述系统测试的定义将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下, - 对计算机系统进行一系列测试活动。根本任务证明被测系统的功...
2019-06-12 16:29:40
60264
6
原创 集成测试(自顶向下,自底向上,三明治)
文章目录集成测试(Integration test)集成测试(Integration test)也叫组装测试或联合测试,是在单元测试的基础上,将所有模块按照设计要求,集成为系统或子系统,并进行测试。验证程序和概要设计说明的一致性,具体检测包括功能正确性验证、接口测试、全局数据结构等。单元测试与集成测试分别谁来完成?单元测试主要是由开发人员来承担,相关测试人员辅助。集成测试主要由测试人员...
2019-06-12 16:10:33
17679
原创 单元测试(自顶向下,自底向上,静态测试)
文章目录单元测试的定义单元测试的内容模块接口测试模块局部数据结构测试模块边界条件测试模块独立执行路径测试模块内部错误处理测试单元测试的环境单元测试策略自顶向下的单元测试自底向上的单元测试孤立单元测试单元测试的难点主要单元测试方法单元测试输入单元测试的输出单元测试重点内容静态测试代码走查代码审查代码评审静态测试检查内容单元测试的定义单元(Unit)指一个可独立运行的代码段,独立运行指这个工作不...
2019-06-11 12:00:28
6487
2
原创 白盒测试--数据流测试
文章目录白盒测试--数据流测试基础定义最少测试用例数计算白盒测试–数据流测试基础定义数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷。变量被定义,但从来没有使用(未使用)所使用的变量没有被定义(未定义)变量在使用之前被定义了两次(重复定义)数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径。数据流测试关注变量接收值的点和使用这些值的...
2019-06-11 11:43:05
10879
原创 白盒测试--控制流测试(白盒测试,逻辑覆盖,路径测试(基路径测试、循环测试),控制流图)
文章目录白盒测试概念白盒测试方法--控制流测试语句覆盖判定覆盖(分支覆盖)条件覆盖判定-条件覆盖条件组合覆盖路径覆盖路径测试基路径测试循环测试控制流图基本控制流图复合逻辑下的控制流图图矩阵环形复杂度白盒测试概念又叫结构测试,逻辑驱动测试。把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试 。白盒测试法考虑的是测试用例对程序内部...
2019-06-11 11:34:55
19284
2
原创 黑盒测试--因果图
文章目录因果图定义因果图的基本符号利用因果图设计测试用例因果图定义因果图是从需求中找出因(输入条件)和果(输出或程序改变的状态),通过因果图转化为判定表。输入条件之间的关系(组合、约束)输入与输出的关系输出条件的关系注意:判定表一般只考虑输入之间的关系。因果图的基本符号输入和输出的关系输入条件之间的关系(虚线)即:E约束:不同时为1;I约束:不同时为0;...
2019-06-11 11:20:40
4302
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人