关于sdk测试,这些你都知道吗?

测试萌萌 测试萌萌     2023-01-26     405

关键词:

一、sdk demo的质量

目前,sdk demo是小编测试sdk的主要途径,所以sdk demo的质量会直接影响到我们测试的结果。

首先,作为测试用的demo,通常我们不需要它拥有美观的界面以及完全友好的用户体验,但是一定要真正按照实际使用sdk的方式来对sdk进行调用,这是很重要的,否则测试的重点很容易跑偏。

其次,demo是否可以覆盖sdk在实际使用中会用到的全部功能也很重要,这客观影响到我们的测试覆盖度。

再有,demo的设计是否可以满足测试的需求也很重要,比如,要进行性能和稳定性测试的话,demo是否可以实现自动化批量测试,以及是否可以对结果或日志进行保存这些都需要考虑。

最后,demo本身是否会影响到测试的结果也需要考虑,比如demo本身的一些逻辑存在bug,或者本身存在内存泄漏等稳定性问题。这种问题比较普遍,可能经常遇到,对于我们测试sdk可能会产生较大干扰,同时也会影响到测试进度,需要尽可能地减少。

在某些项目中,sdk demo是由开发侧制作并提供的,开发提测sdk的同时已经准备好了demo。这种情况就需要我们对demo的质量做个预先的评估。小编之前就遇到了由于开发提供的demo质量的问题,未完全覆盖到app的调用逻辑,导致sdk集成到app后出现问题的情况,测试sdk demo的时候完全正常,结果app的测试同学却遇到了问题。双方测试和开发排查、沟通半天,最后才查到是sdk的问题,白白浪费了各方不少的时间。所以,拿到demo以后,先简单测试并与开发就一些调用上的细节进行核对,如果发现有哪些地方不满足我们上述所说的一些条件,我们应该及时提出,由双方共同商讨解决方法后及时修改,避免测试中出现隐患。

二、手机app sdk测试对资源情况的监控

不同于之前的智能硬件sdk测试,所用的系统由公司自己控制,我们可以较为方便地对系统进行操作,比如获取root权限或者在sd卡中执行脚本等等,对手机app所用sdk的测试,我们要在不同的手机上进行测试。不同品牌、不同系统的手机,由于厂商的限制,我们有时很难进行像获取root权限这样的操作,也很难在手机内部运行自定义的简易脚本来做各种事情,因此对资源情况的监控,我们就不能放在手机里来做了。

这种情况,我们使用外部监控的方式来对手机中运行程序的资源情况进行监控。

第一种方式,可以把之前放在设备中执行的脚本稍加修改,变成在外部执行,通过adb命令来获取相应的资源情况。比如在windows系统下,我们可以使用一个超简单的bat脚本来实现:

@echo off:LOOPset /p=%date:~0,10%-%time%> log.logadb -s deviceid shell “top -b -n 1 | grep ‘processname’ | grep -v grep” >> log.logping 127.0.0.1 -n 30 >nulgoto LOOP

获取到的日志:

然后就可以像之前一样使用excel等工具绘制曲线图来观察资源占用的变化情况。

第二种方式,我们可以用一些监控工具来实现对于资源的监控。比如android studio、xcode、perfdog等等。最近小编就经常使用perfdog来进行资源监控,这款腾讯公司开发的监控工具使用简单,并且安卓和IOS系统都可以使用,也支持一台电脑同时监控不同系统的多台设备,省时省力。

但目前该工具还存在一些bug,便捷的同时也建议大家不要过度信任该工具,还是要自己多加尝试、使用和观察来避免踩坑。

三、可联网智能设备sdk通过公司网络进行测试

我们已经测试了多款智能设备相关的sdk,其中有一项测试是需要通过网络向设备发送一些数据来进行测试的,这种情况在一般的wifi环境(密码加密或完全公开)下比较容易实现,但对于像搜狗公司这样的、需要web认证的网络条件下就比较麻烦,因为很多智能设备可能无法使用web认证,无法接入公司的wifi网络。像这种情况,经研究,我们可以通过几种方式来解决,作为小经验分享给大家:

1、使用电脑无线网卡创建热点,设备接入。

这种方式比较适合使用笔记本电脑测试的同学,一般直接用笔记本的无线网卡开启热点后,智能设备连到这个热点上,设置好ip后即可从电脑访问设备。用台式机的同学可能需要自备另外的网卡了。

2、使用无线路由器,双方接入。

这种方式比较高效,只要电脑(无线有线均可)和智能设备都连到路由器的wifi上,电脑即可访问到智能设备(这就相当于另外搭建一个无线网络)。如果还需要访问外网和公司网络,可以将路由器的一个端口用来连接公司有线网络,使用dhcp或静态ip的方式均可。

3、使用无线路由器,设备接入,纯路由方式。

这种方式不要求电脑端接入路由器网络,只需要智能设备接入,但实现起来比较复杂。需保证路由器接入公司网络,不要开启NAT,智能设备ip不和路由器和电脑在同一网段,电脑和路由器在同一网段,电脑端设置路由将设备网段流量转发至路由器ip。以上条件应该缺一不可,因为过于复杂,所以不建议使用。

4、使用无线路由器,设备接入,端口转发方式。

这种方式是小编最终所选用的。因为无需对电脑端做任何操作,不用开热点,不用经历断网更不用设置路由,甚至还可以从机房的服务器进行访问。只需将路由器接入公司网络,然后将智能设备所需提供服务的端口在路由器设置个端口映射/转发(DNAT)即可,需注意TCP/UDP协议是否启用。这样从电脑端直接请求路由器ip上映射出来的端口就可以访问到设备指定的端口了。缺点是,如果需要转发不止一个端口或端口是动态的话,不是很好处理。

小结

本文主要介绍了在sdk测试中可能遇到的一些问题和解决的思路,希望能给大家提供一些参考。当然关于sdk的测试还有很多其他的方法和注意事项,欢迎各位同学一起讨论交流,共同进步~

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习技术千万不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

网曝“吃鸡”国服17日上线,关于外挂,这些你都知道吗?

先来一组思考题:听舅舅党说,腾讯《绝地求生》国服会在1月17日上线?如果不免费,你会不会玩?如果没外拐,你会不会玩?如果免费+道具付费,你会不会玩?如果只收你皮肤的钱,你会不会玩?为什么“吃鸡”官方对外挂... 查看详情

javascript中的这些骚操作,你都知道吗?

引言 查看详情

身为初学java的你,这些ide的优缺点你都知道吗?

...,而且还能够适应多平台开发,于是市场上各种关于Java的开发工具都纷纷冒出头。那么,身为初学Java的你,它们的优缺点你都知道吗?本文小千就列举6款常用的IDE的优缺点,看看哪一个更适合你。1:... 查看详情

c++20的这些新特性,你都知道吗?(代码片段)

文章目录语言特性三路比较运算符范围for中的初始化语句和初始化器constevalconstint概念(concepts)约束协程模块库特性formatosyncstreamspanendianjthreadsemaphorelatchbarrier位运算库ranges语言特性三路比较运算符三路比较运算符表达式... 查看详情

c++20的这些新特性,你都知道吗?(代码片段)

文章目录语言特性三路比较运算符范围for中的初始化语句和初始化器constevalconstint概念(concepts)约束协程模块库特性formatosyncstreamspanendianjthreadsemaphorelatchbarrier位运算库ranges语言特性三路比较运算符三路比较运算符表达式... 查看详情

@autowired的这些骚操作,你都知道吗?(代码片段)

前言最近review别人代码的时候,看到了一些@Autowired不一样的用法,觉得有些意思,特定花时间研究了一下,收获了不少东西,现在分享给大家。也许@Autowired比你想象中更强大。1.@Autowired的默认装配我... 查看详情

c++14的这些新特性,你都知道吗?(代码片段)

文章目录语言特性变量模板泛型lambda放宽constexpr的限制二进制字面量数位分隔符函数返回值类型推导库特性make_uniqueshared_timed_mutex和shared_lockinteger_sequenceexchangequoted本文仅介绍C++14中的一些比较重要的特性。语言特性变量模... 查看详情

c++14的这些新特性,你都知道吗?(代码片段)

文章目录语言特性变量模板泛型lambda放宽constexpr的限制二进制字面量数位分隔符函数返回值类型推导库特性make_uniqueshared_timed_mutex和shared_lockinteger_sequenceexchangequoted本文仅介绍C++14中的一些比较重要的特性。语言特性变量模... 查看详情

数据库的这些操作,你都知道吗?满满干货等你来收藏

第三章 DDL和DML前言:    SQL------>structuredquerylanguage------结构化查询语言    DDL------>datedefinationlanguage------数据定义语言    DML------>datemanipulationlanguage------>数据操作语言 3.1数据库操作   1、创建数据 查看详情

@autowired的这些骚操作,你都知道吗?(代码片段)

hi,大家好,我是苏三,又跟大家见面了。前言最近review别人代码的时候,看到了一些@Autowired不一样的用法,觉得有些意思,特定花时间研究了一下,收获了不少东西,现在分享给大家。也许@... 查看详情

chrome开发者控制台的这些功能你都知道吗?

Chrome内置了一些开发者工具,这些工具提供了很多的功能。今天,我们将会专注于JavaScript控制台。在我编程的过程中,这个控制台为我提供了大量的帮助。如果你正在电脑端阅读这篇文章,你可以在阅读的同时打开Chrome来实践... 查看详情

mysql表结构管理中,这些知识你都知道吗?

前言:了解数据库1、数据库有几部分组成?   表+视图+函数+查询+备份   数据表是数据储存的基本单元       扩展知识:eclipse的最基本的单元是代码2、对于关系型的数据库而言,一张表就是一... 查看详情

智能家居给生活带来的这些好处你都知道吗?

 智能家居现在已经不再只有华丽衣裳,更有很多实际功能,是你生活居家的好帮手。如果你拥有一套LivingLab的智能家居,你就能实现以下的各种场景。1、早晨,当您还在熟睡时,轻柔的音乐缓缓响起,卧室的窗帘准时自动... 查看详情

挖掘机租赁需要注意什么?这些你都知道吗?

最近一年国内工程机械租赁行业异常火爆,直接影响国内的装备制造业。各个厂家,代理之间的恶性竞争,互相***,让客户分不清楚优劣,看不清楚市场行情。这里,机巢网请添加链接描述小编综合了各位行业大佬和前辈们的经... 查看详情

java中的基本数据类型和包装类型的这些知识,你都知道吗?(代码片段)

Java中的基本数据类型和包装类型Java中的基本数据按类型可以分为四大类:布尔型、整数型、浮点型、字符型;这四大类包含8种基本数据类型。布尔型:boolean整数型:byte、short、int、long浮点型:float、double字符型:char这8种基本... 查看详情

软件测试的那些不得不注意特殊字符你都知道吗?

软件测试中不得不注意的特殊字符:“%”符,它在数据库中为通配符,如果客户在搜索框中输入“%”,而程序未对输入的字符进行转义,在系统将解释为一个通配符,列出所有结果,而不是只含... 查看详情

java开发人员必知的常用类库,这些你都知道吗?(代码片段)

作为一名程序员,我们要避免重复发明轮子,尽可能使用一些成熟、优秀、稳定的的第三方库,站在巨人的肩膀上搭建可靠、稳定的系统。本篇我整理了Java开发人员经常会使用到的第三方类库,可能不是很全面,还在持续收集... 查看详情

做了两年java,这些高性能高可用高并发的技术架构你都知道吗?

前言每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行... 查看详情