• 12
  • 11
分享

基于Appium的Android自动化框架

根据多种工具选择的性价比,客户端自动化采Shell+Appium+Selenium+Java+TestNG框架。 

工具选择背景

以业界主流工具进行对比,优劣如下图所示:

图片1.png

由于Selenium工具开源且扩展性较好,所以选定为框架主体

图片2.png

框架设计详细

根据工具选择,设计自动化框架如下:

图片3.png

自动化演示

通过命令或定时任务,达到自动执行的效果

图片4.png

测试案例

2016年初,经优化重组,中软测试团队固定在8人,根据当初接手的实际情况,项目组选用高速迭代开发的规范化流程。这段时期,由于android机型多样,导致软件兼容性问题突出,这对开发测试效率和产品质量都是严峻的考验。

开发团队利用代码管理工具,提升效率的同时,进一步提高代码质量,解决各种疑难兼容性问题;测试团队构筑高效的自动化测试体系,进行全面的兼容性测试,增加产品的可信任度、过程的可监控性,并大大提升计费转化率与产品质量。

为缩减测试周期,测试组引入自动化测试,完成接口自动化、web自动化、app端自动化的构建与填充,将测试时间缩短42%。短期内生成千余条基础自动化用例,并长期维护扩充,以达到自动构建、高效测试、快速迭代的良性循环。

扩展:集成到jenkins环境上,每日持续集成。

图片5.png

服务端自动化测试

工具选择:apache-jmeter-3.2 + apache-ant-1.10.1-bin + jenkins-2.60.3 + jdk1.8.0_131

打开Jmeter工具,编写自动化用例

图片6.png

运行ant命令,生成html文件

Jmeter接口测试脚本运行后生成的是JTL(xml)格式的文件,这些文件不具备可读性,因此我们要把他转化为可以阅读的html格式报告;Ant是一个功能强大的打包编译工具,我们使用他的目的是将xml文件转化为html格式的文件。Ant自带了把xml转化为html的lib库,只需修改Lib文件即可。

图片7.png

使用jenkins部署到持续集成平台可以实现脚本的定时运行,这是接口测试的核心

1.设置定时运行间隔,这里表示每天下午五点开始自动打包并部署到用户运营测试环境,环境部署成功后自动执行jmeter自动化用例。

图片8.png

2.设置invoke ant就可以调用ant,也就是执行生成测试报告TestReport.html。

图片9.png

3.在 workspace目录下会生成结果报告并通过邮件形式发送给相关人员,邮件内容也可根据需要自行定制。

图片10.png

图片11.png

图片12.png

性能测试

工具选择:Jmeter+Jekins+ Performance Plugin(Jekins插件)+ Nmon

性能测试流程

该性能测试框架工作的流程主要有:触发测试–>部署测试脚本–>部署被测系统–>Jmeter打压–>被测系统日志分析,5个阶段。 

环境需求

  1. Jenkins master:用于管理测试机、建立性能测试job、启动性能测试、展示性能测试结果。 

  2. Load generator:用来给被测试服务器发送请求,当一台Load generator发送的并发请求数达不到测试要求时,可能需要配置多台。Setup ENV阶段的Performance-test-script-deployment以及Run test阶段的job都是运行在这机器上的。 

  3. 被测试服务器:用于安装被测试服务的机器,分析被测试服务的log的job也是运行在这个机器上的。 其中,Load generator和被测试服务器都是作为slave节点挂载在jenkins master上的。

Jmeter GUI上制定测试计划

测试执行实在Jenkins中通过非GUI方式执行Jmeter压力测试的。在JmeterGUI上制定测试计划的目的是,将测试计划保存成.jmx文件,以便能够在Jmeter的非GUI模式下执行测试。

图片13.png

生成客户端测试报告

通过Jenkins上安装的JMeterPlugins-Standard插件来将测试结果文件.jtl格式的文件解析成图表。

图片14.png

查看服务器性能

使用Nmon查看服务器当前性能,并将最终结果导出文档保存。

图片15.png


作者:佚名

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 随着技术和数字化的快速发展,企业努力确保其应用程序在所有浏览器和平台上流畅运行。在今天的情况下,企业依靠互联网存在来提高他们的投资回报率并扩大他们的在线影响力。这就是为什么大多数 Web 应用程序都设计为与多个浏览器兼容的原因。这对于任何响应式 Web 应用程序都非常重要,因为必须确保应用程序在任何给定时间与每个浏览器和浏览器版本兼容。尽管如此,跨浏览器测试还是被忽视了,因为开发人员在将跨浏览器测试纳入QA工作流程时面临许多挑战。随着时间的推移,客户的注意力持续时间越来越短,如果网站加载看起来有问题,他们会毫不犹豫地按下浏览器上的后退按钮。那么,有什么解决办法让Web应用程序和网站在每个浏览器...
            0 0 851
            分享
          • 1、背景1.1 项目背景在移动平台服务端接口测试覆盖度为零的情况下,根据服务端接口的特点,以及升级更新的速度较快等,需要开发此框架来实施服务端接口的自动化测试。1.2 接口测试接口测试属于灰盒测试范畴,通常不需要了解接口底层的实现逻辑,但需要测试人员能够使用代码的方式来调用接口。接口测试主要用例测试接口的功能以及接口返回数据的正确性。根据接口测试的复杂度接口测试分为两种。即单一接口测试,以及多接口组合功能测试。由于接口测试是通过代码调用的方式完成,而且接口测试与前端UI属于松耦合(或无耦合)因此通过自动化手段将极大提高测试效率以及回归测试的复用率。本文中提到的接口测试主要是指基于http,ht...
            13 13 3206
            分享
          • 硬件兼容性测试一般考虑两个方面的内容:一是不同的硬件配置可能影响软件的性能,二是软件若使用了某些硬件的特定功能,就要对此进行兼容性测试。硬件兼容性测试具体内容如下:1、与整机的兼容性测试考虑到软件的运行情况,需要对常见的硬件配置进行测试,从而确定软件能够在多种硬件配置环境下运行。如果软件对硬件的配置要求比较高还要测试它的敏感度。2、与板卡和外设的兼容性测试如果软件需要直接访问某类板卡和外部设备,通常需要对这些板卡和外设的接口调用进行测试,以确保对这些接口的访问适用于所有型号的板卡和外设。软件兼容性测试软件兼容性测试主要考虑以下问题:1、与操作系统的兼容性如果一个软件可以在多种操作系统上运行,就...
            0 0 776
            分享
          • 测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题:测试用例的基本格式:软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果,下面逐一介绍。用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。...
            12 14 1709
            分享
          • 读者提问:产品总是临时加需求,怎么办 ?阿常回答:大多数情况下需求变更是不可避免的,我们需要保持既开放又理性的心态,来拥抱需求变化,同时也要避免太多的需求变更。一、需求变更无法逃避需求变更是一把双刃剑,一方面需求变更可以优化产品功能,提升用户体验;另一方面需求变更给团队带来了开发成本的增加,并且会打击团队的士气。如果某个产品的最终形态就是产品最初的需求分析,没有经历过一次需求变更,这就可能有两种原因:其一,产品将所有细节都考虑到了,TA 是一位很牛的产品经理。其二,整个团队都在抵制需求变更,拒绝做任何产品功能的优化。二、如何控制需求变更当需求变更来临时,我们可以从工作流程上来控制:一...
            0 0 962
            分享
      • 51testing软件测试圈微信