前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从 0 开始做后台测试

从 0 开始做后台测试

原创
作者头像
腾讯移动品质中心TMQ
修改于 2017-07-13 08:51:22
修改于 2017-07-13 08:51:22
3.2K0
举报

作者:赵燕

团队:腾讯移动品质中心TMQ

从用户反馈说起

“我备份的照片怎么不见了”;

“出现服务器错误-1001”;

“下载的照片无法显示”。

用户反馈,测试过程中经常遇到各种与后台相关的非必现问题,对于一个重后台功能的产品,包括很多业务逻辑和用户的数据都与后台强相关,若只是通过客户端来测试后台功能的话,在遇到上述问题时,分析和重现问题对于测试人员来说非常困难。

除此以外,在日常的测试中,后台相关的测试还面临以下几类问题:

1、后台测试的充分性和完整性的保证;

2、不与客户端直接交互的功能,无法通过客户端的用例来直接覆盖到所有功能点;

3、面对一些偶现问题,无法定位问题,不知从何下手;

4、后台的一些服务改动和发布,回归测试非常耗时。

为了解决后台测试面临的问题,于是开启了产品后台测试的探索之路,按照以下思路进行:分析产品的后台架构>客户端交互的后台接口测试>TAF后台接口测试>后台服务性能测试

分析产品的后台架构

下图是产品后台的部分架构,由分片上传服务,业务处理服务,用户数据服务,照片压缩和照片加密服务组成。

业务处理模块:该服务主要实现业务逻辑功能,包括图片上传、图片下载、创建相册和图片分类,如下图所示。该服务中的接口都是与客户端直接交互的。可以通过模拟客户端的请求来测试业务处理模块中的接口。

用户数据服务:用户文件存储的是用户图片相关的信息,例如图片的SHA,URL等,用户数据存储的是联系人信息和短信信息。

图片压缩服务:压缩图片成为各种合适尺寸的图片缩略图;

加密服务:加密服务包括加密数据接口和加密密钥接口;

用户数据服务,图片压缩服务和加密服务,这三个服务的接口是不直接与客户端进行交互的,无法通过客户端模拟请求来测试,因此针对这三种服务的接口通过访问TAF接口的方式来进行测试的。

图存平台和TFS等属于外部公共接口,暂时不在测试范围内。

与客户端的后台接口测试

框架接入和问题解决

通过客户端测试后台因为其他产品已有现成的框架,新产品的接入只需要分析现有框架是否适用或是否需要做二次开发。

1、分析框架是否适用,产品前后台接口通信协议都是使用的shark协议,评估并测试后确认可以使用现有的框架来开发用例;

2、分析产品的接口,我们产品的接口功能都依赖于登录态,大部分接口都需要校验登录态loginkey,因此需要搞定登录态的问题;

(1)参考手Q快速登录提供的WTLoginSDKDemo,修改其中的参数appid为对应产品相册的appid,并且把该SDK集成到后台测试框架中;

(2)启动测试后,根据输入的QQ帐号密码拿到即通返回的A2票据,存入到SD卡中,A2票据的有效期为1个月;

(3)QQ帐号及A2作为登录接口的WTLogin的请求参数,解析接口的返回结果拿到登录态Loginkey;

(4)Loginkey是作为后台登录态的唯一校验。

3、产品接口请求参数photoInfos中的SHA是需要校验的,需要获取真实照片的photoInfos。

(1)单独出一个公共类PhotoInfoUtil构造phtoInfos中的请求参数字段;

(2)编写获取照片SHA的函数;

(3)接口测试用例中的请求参数SHA直接调用PhotoInfoUtil.create(path).sha赋值。

后台接口应用案例

1、需求描述

新功能照片地图的照片标签功能,客户端通过上传本地照片的经纬度信息到后台,后台通过调用腾讯地图的API返回城市信息给客户端,客户端显示在照片地图上显示城市信息

2、测试分析

(1)苹果系统使用的是高德地图的API,而我们的产品后台使用的是腾讯地图的API,需要测试城市信息是否显示一致;

(2)选择城市的测试样本,一是参考产品用户照片地点的分布,二是参考蚂蜂窝热门旅游城市,最后综合考虑选择了蚂蜂窝的270个热门旅游城市作为测试样本;

通过客户端手工测试,需要人工准备270个热门城市的照片,测试结果也需要人工判断,预计耗时需要5天;

(3)分析后台接口,请求参数中填写照片经纬度信息,批量构造270个热门城市的经纬度信息存入数组中,通过请求接口CSBatchGetAddrByCoord返回270个热门城市的城市信息,预计耗时1.5天;

(4)照片地图照片标签功能,客户端只是上传照片的信息到服务器和显示城市信息结果,无复杂业务逻辑和交互操作,照片标签功能适合用后台接口测试来完成。

3、测试效果

一共发现了六类城市信息显示问题,已经通过映射的关系解决部分重点问题,测试效率提升了70%,特别在后续的回归测试中5分钟即可以完成一次测试。

后台TAF接口测试

用户数据服务的接口不与客户端交互,是后台TAF接口,通过直接访问TAF接口来进行测试。

TAF知识准备篇

JCE文件:JCE文件是TAF框架中客户端和服务端的通信协议,是一种类C++语言的标识符,用于生成具体的服务接口文件,了解JCE的语法规则,关键字,基本类型,复杂类型,名字空间和接口是做TAF接口测试的基础。详细知识可参阅《TAF-使用指南和规范》。

Makefile:TAF框架提供了一个makefile.taf的基础Makefile,使用TAF实现的服务,需要遵从Makefile规范:(1)原则上一个目录是一个Server或者程序,即Makefile只能有一个Target,(2)需要包含其他库时,根据依赖关系倒序include在Makefile文件底部。

TAF框架使用:做TAF接口测试仅需要了解C++客户端的使用,客户端对服务端完成收发包操作是通过通信器(communicator)来实现的,通信器可以使用配置文件初始化通信器,也可以直接使用属性初始化,通信器不需要自己创建,直接采用服务框架中的通信器即可。

单个接口测试

(1)连接服务器, 定义初始化服务器变量taf::CommunicatorPtr _comm; 服务器init函数。

Locator:registry服务的地址,必须有ip port的,如果不需要registry来定位服务,则不需要配置。

Property:属性上报地址,如果没有配置,则上报的数据直接丢弃。

(2)请求TAF接口,选择转换DataInteface.jce文件成 c++语言,在生成的DataInteface.h中找到服务的接口操作类typedef taf::TC_AutoPtr DataInterfacePrx;定义变量QQPIM::DataInterfacePrx client;

以上是接口long getDataList(long UIN, string dbdir, out vectorreslist)请求服务操作,getDataList是接口名,UIN和”cont”是请求参数,relist是服务器响应结果。 (3)编译运行,写好的接口测试代码放到linux服务器上运行,可以通过跳板机登录,编译通过的可执行文件,发送到服务器上运行。

Makefile文件包括编译需要的JCE文件外,还需要有编译依赖的工具类库文件,值得注意的是不同的服务Makefile文件可能不一样。

举例:加密服务和用户数据服务的Makefile文件所包含的库文件就有区别:

多个接口测试

分析接口之间的关系,其中多个接口间存在依赖关系的(即前一个接口的输出结果是后一个接口的输入参数),则可以通过在一个测试类中实现多个接口测试函数来实现。

TAF接口每日监控运行

1、是由一个shell脚本qqpimtest.sh运行所有接口的可执行文件,并把运行结果重定向到文件qqpimtest.txt中; 2、解析接口测试生成的报告文档,将文档报告数据进行HTML编码; 3、通过服务器上的邮件系统,将邮件定时发送出去,邮件模版如下图所示。

未来测试计划

本篇文章介绍的是在项目中如何从0开始做后台测试,主要侧重的是项目后台架构的分析,测试后台接口功能,能解决后台功能测试的问题。涉及到接口稳定性和高负载情况下服务器处理超时问题是部分偶现问题出现的源头,因此下一步会重点研究后台性能测试

获取更多测试干货,请搜索微信公众号:腾讯移动品质中心TMQ!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
老总让做后台接口监控,我却开发了一个App
作者:樊林 最近投入到了一个新的项目中,是一个新的Android项目,项目涉及到智能聊天相关的功能,所以需要一个很好的接入层,总之肯定不能用通用的http协议来聊天。 手Q、微信等聊天软件,都会实现自
腾讯移动品质中心TMQ
2017/07/18
4.2K0
老总让做后台接口监控,我却开发了一个App
接口测试面试题
GET请求:用于信息获取,相对而言是安全和幂等的;在做数据查询时,建议用GET方式,如:商品信息接口、搜索接口、博客访客接口...
找Bug
2022/07/22
1.3K0
Now 直播应用的后台服务器性能测试实践
WeTest质量开放平台团队
2016/11/01
5.5K5
Now 直播应用的后台服务器性能测试实践
测试面试题集-接口测试
又到星期五啦,作为一个常年因计划赶不上变化的反面教材人物,每周一、三、五7:30能坚持更文一定是凭借着我上辈子修炼的毅力以及对这个正垂死挣扎的公众号的拼死补救。如果正在看此文的你希望来施展自己的十八般武艺,欢迎在后台回复“投稿”,尽情的砸稿子过来,coco请你喝奶茶。
可可的测试小栈
2020/05/26
9610
软件测试面试问题及答案_中软国际测试面试笔试题
上一篇链接:软测面试题附答案<一>,主要内容为常规软测面试题。 下一篇链接:软测面试题附答案<三>,主要内容为测开相关面试题
全栈程序员站长
2022/11/10
1.1K0
腾讯开源微服务 TARS 接口测试揭秘
腾讯移动品质中心TMQ
2017/04/20
6.5K5
一顿测试猛如虎,一问接口不清楚!
接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。
测试小兵
2022/04/14
6350
TAF 必修课(一):整体架构理解
serena
2017/09/01
11.4K0
TAF 必修课(一):整体架构理解
金三银四求职季,接口自动化面试题助攻一波
Hi,大家好,今天是三月的第一天,至此正式进入 “金三银四”升职加薪的黄金季。如果你在公司是加班时的超人,加薪时的隐形人。面对跳槽机会,你动心吗?假如发展空间受限而此时恰好有很好的机会,积极投入到找工作的新大军不失为当前的一种选择,今天分享一波接口自动化面试题为你助攻,祝加薪成功!💰 一 请求接口中常见的返回状态码 请求接口中返回状态码以如下数字开头: 1xx– 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个 1xx 响应)。 2xx – 成功(表明服务器成功地接受了客户端请求)。
可可的测试小栈
2021/03/15
7440
cookie、session、token区别
1.token是 服务经过计算发给客户端的,服务不保存,每次客户端来请求,经过解密等计算来验证是否是自己下发的
IT大咖说
2021/01/27
4.6K0
cookie、session、token区别
互联网App应用程序测试流程及测试总结
测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。
北京-宏哥
2019/09/11
1.7K0
服务端接口测试指南
接口的功能主要是客户端和服务端的数据交互,即通过接口对后端数据的增删改查,来实现用户和产品的交互。
测试小兵
2021/07/13
1.1K0
基于某业务单登陆场景并发测试实战
通过对某业务用户登录接口进行并发测试,模拟用户真实场景,发现服务器存在的服务瓶颈,辅助提升产品稳定性。
虫无涯
2023/02/17
6450
你所不知的TARS,却帮阅文集团完成技术架构变革!
TARS开启阅文集团技术架构变革之门 本文作者:欧樑 后端研发架构师,现任职于阅文集团技术部基础服务研发组,一直致力于Java应用架构设计以及业务架构演进研发,对分布式系统架构有深入理解。 什么是TARS TARS(点击阅读原文,快速访问GitHub)是腾讯从2008年到今天一直在使用的后台逻辑层统一应用框架(Total Application Framework)的开源版本,目前支持C++,Java和NodeJs三种语言。 该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务
腾讯开源
2018/03/02
1.8K0
你所不知的TARS,却帮阅文集团完成技术架构变革!
api接口的安全设计:使用token+sign+时间戳
服务端以api的方式将数据响应给客户端是目前的趋势,可以用在前后端分离的架构中,前后端分离之后,前后端人员能够更加专注于自己板块的东西,也可以用在服务端与服务端相互调用中。
炒香菇的书呆子
2023/10/03
2.5K0
自动化测试+性能面试题整理–个人最新【持续更新】「建议收藏」
公司要求招一名自动化测试,能力要求不高,1年左右自动化经验+部分性能经验即可,让我出一份题,我就百度+公司项目遇到的问题,出了一份,出题整体思路是:接口自动化问题+性能问题+规划的ui、app自动化+整体质量体系建设等多方面考虑。下面是正题
全栈程序员站长
2022/11/11
2.3K0
自动化测试+性能面试题整理–个人最新【持续更新】「建议收藏」
浅谈接口测试
百度百科上面是这么说的:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
TestOps
2022/04/07
2240
浅谈接口测试
软件测试之安全怎么做?
扫描?在很多人的眼中,做安全的就是整天拿个工具在哪里做扫描操作,使用各种不同的工具做扫描。是的,扫描是安全测试的很重要的一部分,扫描可以快速有效的发现问题。扫描工具的易用性、方便性决定了重要地位。但是扫描工具的局限性、程序的不够灵活等缺点也是显而易见的。不管是扫描报告的分析、漏洞的深度挖掘、测试的组织等等的工作都离不开安全测试人员,所以只能说扫描工具减轻了测试人员的工作量,是安全测试的一种手段。
小黑同学
2020/08/17
2.3K0
APP安全测试点概述
目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安全隐患巨大。
软件测试君
2020/02/12
1.4K0
腾讯专家10年沉淀:后海量时代的架构设计
👉腾小云导读 移动互联网后半场,海量技术已经成为了标配。在架构设计时,开发者能做什么、要考虑什么,从而实现一个设计精良的架构?欢迎往下阅读,和腾讯后台技术专家吕远方一起聊架构设计! 👉看目录 点收藏 1 背景 2 架构的边界 3 架构的组织属性 4 架构的反馈 5 总结 01  背景 腾讯面向内部开发者的海量服务之道系列课程颇具名气,它为司内外海量用户提供互联网服务的经验传承。无数开发者尤其是后台技术栈的开发者都获益于这些课程,从而成长起来。本篇我们将提炼这个核心课程精髓,供广泛开发者参考。 海量服务的核心
腾讯云开发者
2023/04/13
2.9K0
腾讯专家10年沉淀:后海量时代的架构设计
相关推荐
老总让做后台接口监控,我却开发了一个App
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档