• 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


作者:佚名

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   操作步骤:  右击:“添加”-"监听器"  察看结果树  查看结果树显示所有取样器的请求信息和响应信息,方便接口调试,问题定位。  聚合报告  聚合报告为测试中的每个取样器创建一行。对于每一个取样器,计算响应信息,并提供请求计数,最小,最大,平均,错误率,近似吞吐量(请求/秒)和千字节每秒的吞吐量。测试完成后,吞吐量就是整个测试期间的实际吞吐量。  · 标签 -样品的标签。如果选择“ 在标签中包括组名? ”,则线程组的名称将作为前缀添加。这样,可以根据需要分别整理来自不同线程组的相同标签。  · #样本 -具有相同标签的样本数  · 平均 -一组结果的平均时间  · 中...
            10 10 1972
            分享
          • 前言JMeter在请求时,肯定会需要参数传递,参数值如果不变动或者不需要加解密这些操作,则操作上都是比较简单。如果参数值不固定,而且需要加解密正确的时候该如何操作呢?先说一下我这个接口大概的需求:该接口主要实现获取出符合要求的二维码链接;请求参数通过RSA加密,需要生成符合要求的RSA加密值;不知道加密具体机制,但是有源码可以直接调用。实现1、生成jar包这一步很重要,如果自己熟悉java,则需要自己读懂开发的java代码,提取出我们需要的方法,对其进行修改,并且进行打包。如果不行,则可以找开发帮忙。这里不能贴出我写的源码,毕竟每个公司需求也不一样。这个步骤,我主要是对传入参数进行了修改,只需...
            0 0 1084
            分享
          • 1.页面跳转和刷新driver.get(url)方法可以跳转到要访问的网页去driver.back()可以返回上一个页面,即跳转回到百度首页了driver.forward()可以跳转回到刚才回退的那个页面即当driver.back()的时候回到上一个页面然后想回到下一个页面可通过driver.forward()跳转到下一个页面去可通过driver.refresh()来刷新页面2.driver提供获取页面信息方法driver.current_url可获得页面的当前url地址,可用于判断当前页面driver.title可获得当前页面的标题,可用于判断当前页driver.name可用于获取当前浏览器...
            0 0 10862
            分享
          • 一、前期准备:关于投简历需要意识到:一旦开始投简历,就是正式的开始找工作期了,你可能在投简历之后,时刻都能收到公司的面试邀请和电面邀请。所以,在开始投简历之前,就应该做一些基本知识的准备,避免仓促的接到电面和面试,因为没有表现好错过了好公司的机会。面试的有些问题是需要临时突击背诵加强的,因为甚至日常工作涉及不到,涉及面也比较广,建议还是要提前做三到四个月的准备,如果是在职状态的话,这个时间其实并不是特别充裕,所以给自己做个计划时间表,选择一个开始投简历的合适时间。设置个人的目标确认自己的目标,自己有意向的公司以及可以接受的公司类型,针对性的做准备;不要海投,尤其对于已经工作一段时间的人,海投会...
            5 10 4254
            分享
          •   全球各地的企业每天都在发展变化着,以应对市场挑战,满足日益成熟的客户需求。即使是正在进行的技术进步也会使软件测试专家在实践的过程中更加专注和精确。  2021年给软件测试领域带来了新的技术解决方案,以及质量保证和软件测试的实现。与此同时,诸如敏捷、DevOps、DevSecOps和测试自动化等实践继续在整个软件测试周期中保持其相关性和应用。  而2022年软件测试和开发领域的一些强劲趋势主要有以下几个:  1、人工智能促进软件测试  《福布斯》的一篇题为《软件测试中的人工智能:机器人会代替你的位置吗?》中提到:“依赖技术完成高重复性任务的趋势,同时使人们能够专注于高价值的活动,如创造收入、...
            0 1 1827
            分享
      • 51testing软件测试圈微信