edsion的博客

个人分享
分享和发现互联网
测试开发那些事

最近写自动化脚本的时候,遇到一个问题:(为了便于理解,这里拿QQ音乐举例,实际是一个内部项目不方便透露),打开QQ音乐,选择一首歌曲-播放,在播放器界面按home键回到桌面,再点击桌面快捷方式返回QQ音乐,现象:手动操作返回的是播放器界面(即回到桌面之前的界面),但是通过代码执行,返回的却是QQ音乐的首页。本文就造成这一问题的原因和分析过程做个记录,便于以后回顾。

阅读全文 »

这里以chrome为例。

其中apk文件为chrome-67-0-3396-87.apk,对应的包名为com.android.chrome

有apk

方式一:minSdkVersion-可以、targetSdkVersion-可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ aapt list -a chrome-67-0-3396-87.apk |grep -i sdk
A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
E: uses-sdk (line=3)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
E: uses-permission-sdk-23 (line=10)
E: uses-permission-sdk-23 (line=15)
E: uses-permission-sdk-23 (line=16)
E: uses-permission-sdk-23 (line=17)
E: uses-permission-sdk-23 (line=18)
A: android:name(0x01010003)="com.samsung.android.sdk.multiwindow.enable" (Raw: "com.samsung.android.sdk.multiwindow.enable")
A: android:name(0x01010003)="com.samsung.android.sdk.multiwindow.multiinstance.enable" (Raw: "com.samsung.android.sdk.multiwindow.multiinstance.enable")
A: android:name(0x01010003)="com.samsung.android.sdk.multiwindow.multiinstance.launchmode" (Raw: "com.samsung.android.sdk.multiwindow.multiinstance.launchmode")
A: android:name(0x01010003)="com.samsung.android.sdk.multiwindow.penwindow.enable" (Raw: "com.samsung.android.sdk.multiwindow.penwindow.enable")

注意,这里取出来的值是16进制的,需要转换为10进制使用。
python 16进制转10进制: int('0x10', 16) = 16

方式二:minSdkVersion-可以、targetSdkVersion-可以

1
2
3
4
5
6
7
8
9
10
11
12
13
$ aapt d badging chrome-67-0-3396-87.apk |grep -i sdk
package: name='com.android.chrome' versionCode='339608700' versionName='67.0.3396.87' compileSdkVersion='28' compileSdkVersionCodename='9'
sdkVersion:'16'
targetSdkVersion:'28'
uses-permission-sdk-23: name='android.permission.ACCESS_WIFI_STATE'
uses-permission-sdk-23: name='android.permission.BLUETOOTH'
uses-permission-sdk-23: name='android.permission.BLUETOOTH_ADMIN'
uses-permission-sdk-23: name='android.permission.REORDER_TASKS'
uses-permission-sdk-23: name='android.permission.REQUEST_INSTALL_PACKAGES'
uses-feature-sdk-23: name='android.hardware.bluetooth'
uses-implied-feature-sdk-23: name='android.hardware.bluetooth' reason='requested android.permission.BLUETOOTH permission, requested android.permission.BLUETOOTH_ADMIN permission, and targetSdkVersion > 4'
uses-feature-sdk-23: name='android.hardware.wifi'
uses-implied-feature-sdk-23: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission'

minSdkVersion对应的应该是这里的sdkVersion

没有apk(已安装在手机中):minSdkVersion-不行、targetSdkVersion-可以

1
2
$ adb shell dumpsys package com.android.chrome|grep -i sdk
versionCode=339608700 targetSdk=28

注意:sdk可能是小写、可能是大小写混合,所以grep命令要使用-i参数,指定忽略大小写

TL;DR

腾讯云因为低廉的价格和稳定的服务,以及各种优惠政策,一直被戏称为良心云。对于一些用户量不大、对保密性要求不是特别高的服务,如果充分利用腾讯云的各种优惠,几乎可以零成本搭建。要知道在内网搭建一个服务现在非常多复杂(申请资源、审批权限等等),而且还面临各种限制,运维方面费时费力,所以把服务搬到云上不失为一个好的解决方案。

腾讯云常用免费套餐

  1. 对象存储服务 —— 高可用、可靠、可扩展的对象存储。免费额度:每月50GB存储空间,免费流量共20G及读写请求数量共110万次
  2. 内容分发网络CDN —— 将源站内容分发至最接近用户的节点,有效降低访问时延。免费额度:每月10G免费流量,新用户更有连续6个月50GB免费流量
  3. SSL证书 —— 腾讯云 SSL证书(SSL Certificates)提供了安全套接层(SSL)证书的一站式服务,包括证书申请、管理及部署功能,与顶级的数字证书授权(CA)机构和代理商合作,为您的网站、移动应用提供 HTTPS 解决方案。免费额度:同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书
  4. 无服务器云函数 —— 自动、弹性、无需服务器管理的代码运行环境。免费额度:每月100万次调用,40万GBs 资源使用
  5. 网站安全基础防护 —— 抵御2G DDos攻击的免费服务,实时检测,业界领先!免费使用
  6. 云解析 —— 安全、稳定、快速的免费域名解析服务。免费额度:提供免费版云解析
  7. 云拨测 —— 基于全球服务质量监测网络,助力保障网站、域名、后台接口服务质量。免费使用
  8. 云监控 —— 多维度立体化云产品监控,智能化数据分析,定制化告警触达。免费使用

万象优图 —— 腾讯云为客户提供的专业一体化的图片解决方案,涵盖图片上传、下载、存储、处理、识别等功能,将 QQ 空间相册积累的十年图片服务运作经验开放给开发者。目前有图片处理、原图保护、跨域访问设置、样式预设等功能。
经工单咨询确认,万象优图依赖对象存储服务,但两者的免费额度分别计算。例如,COS的外网下行流量免费额度是10GB,万象优图的外网下行流量免费额度也是10GB。所以我可以先用COS的10个G,当检测到流量用尽时,切换到万象优图继续使用。

阅读全文 »

开篇

因为这一系列文章大部分基于实际工作中的经验,很多问题可能是因为“星海”(公司内部的接口测试平台)的限制导致的。所以后续文章提供的解决方案并非最优解,仅供参考。

测试用例的设计

分类

根据黑盒测试的经验,对于一个接口的测试用例设计,可以分为“正常逻辑”与“异常逻辑”两大类。

阅读全文 »

本文译自:Cookies vs Tokens: The Definitive Guide


TL;DR

基于令牌的身份验证(Tokens-based authentication,下文简写为token)正在变得越来越流行。 我们将研究cookie和token之间的区别和相似之处,使用token的优势,以及解决开发人员关于token的常见问题和疑虑。 最后,我们将构建一个使用token并使其成为渐进式Web应用程序(PWA)的应用程序。

我们将编写一个使用JWT进行身份验证的Angular 2应用程序。源码在此: GitHub repo

阅读全文 »

想在PC端为android设备截图,通过adb执行shell命令无疑是一种最常用的手段,但是这个命令在执行的时候会存在效率低的问题。本文试验了直接使用`adb exec-out`命令的方法,能够显著提高截图的速度。

阅读全文 »
0%