测试

Golang实现的高性能HTTP负载工具

岁酱吖の 提交于 2019-12-01 09:51:01
Sniper Sniper是一个功能强大、高性能的HTTP负载工具,采用Golang编写。利用协程并发优势,实现海量并发、超低内存占用、丰富图表展示。是测试、分析、优化服务端性能的绝佳助手! ##体验 提供以下可执行文件,可直接运行 Darwin 64 bit Darwin 32 bit Linux 64 bit Linux 32 bit FreeBSD 64 bit FreeBSD 32 bit ##功能 以实用为原则,实现以下功能 GET / POST keep-alive模式 https 图表展示结果 测试多个目标 支持大文件负载 跨平台,支持Linux,FreeBSD,Darwin ###对比同类工具 ##性能 内存占用低于Apache Benchmark(ab)等主流负载工具 执行速度接近ab,高并发时超过ab 支持10k以上并发 支持超大文件测试 测试的详细情况,与各大负载测试工具的性能对比 在此 ##图表展示 统计分析每个请求 输出建立连接时间 输出服务端响应时间 输出总时间 基于 dygraphs 与html5,详细展现服务端性能情况 从测试结果中等距采样约1000样本,详细展现连接建立,链路传输和服务端执行情况 下图展示了总时间和连接建立时间的对比,Golang是怎样得到连接建立的时间呢? 原来项目基于net库实现了HTTP协议栈,重构而不是官方net

腾讯测试工程师:你以为会打LOL就能做测试了?

自作多情 提交于 2019-12-01 09:17:23
  周日参加完公司团建,回家路上拼到一个IT界的老司机,他和几个朋友组件团队承接开发项目,知道我是做测试的,问了我一个问题:   “你们大公司的测试都做什么?”   “测试应该不好模仿吧?”   刚开始我也不清楚他的目的是什么,经过几个收敛性的问题,确认他遇到的困难:   1、 曾经一个项目,客户验收的时候发现多个低级错误,他觉得很没面子,客户信任度也遇到了问题。   2、 随着移动互联网的兴起,他们团队自己做的一个APP(包括运营)问题太多,用户丢失严重。   3、 自己不知道怎么测试,开发完成后团队内部交叉测试,问题(严重问题)仍然很多。   4、 开发不愿意做测试,好吧,这是人之常情,招聘过一个比较LOW的测试,成本太高,效果也不好。   了解这些后,我讲了一件事,我一个朋友跟我说:    “我喜欢玩LOL,已经玩了X年,天梯排名XX,特别喜欢LOL,想去你们公司做LOL的测试,帮我推荐一下好吗?”   那么问题来了?LOL打得好就能做测试吗?显然不是。测试是技术工作,不是在屏幕上点一点,随便用一下。    大致分为:   1、 需求分析、系统分析和测试分析,主要是通过经验找出风险,以及编写用例。代码review。所以经验和技术都很重要!   2、 测试用例执行,检查需求实现是否正确,质量好坏(交付影响有多大,是否达标)   3、 质量流程和标准的建立

http接口测试—服务端的编写

核能气质少年 提交于 2019-12-01 07:13:38
1、这里我们使用eclipse创建一个web工程,名称为lctest,服务器使用的是tomcat(这个不会的童鞋可以查一下资料) 2、这里的一个服务端相对简单, 输入参数:任何数据, 输出参数:"访问方式"+method+"访问成功");"输入参数param为:"+param); 3、下面我们就开始编写服务端 1)创建一个Servlet名称为testServlet 2) 在testServlet中添加excute方法,内容如下 public void excute(HttpServletRequest request,HttpServletResponse response) throws Exception{ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/xml"); String method=request.getMethod(); String url=request.getRequestURI(); String param; if(request.getParameter("param")==null){ param="输入参数为空"; }else if(method=="GET"){ param

Python开发环境Wing IDE matplotlib 2D绘图库代码调试技巧小结

拟墨画扇 提交于 2019-11-30 11:45:46
Wing IDE是一个集成开发环境,可用于加快matplotlib2D图形库的Python代码的编写和调试进程。Wing IDE提供自动完成、调用提示、调试器,以及许多其他功能,可帮助用户编写、浏览和了解Python代码。 工作于Python Shell matplotlib的用户经常会交互式地工作于Python命令行shell。 例如: from pylab import plot,show,close x = range(10 ) plot(x) show() y = [2, 8, 3, 9, 4 ] plot(y) close() 在某些环境中,直到关闭绘图窗口,上面show()调用都会阻塞。默认情况下Wing IDE将会修改matplotlib事件循环的方式,当被输入到集成的Python Shell中时,show()调用将不会阻塞,绘图窗口将会一直更新作为额外的命令类型。这样可以更容易的交互测试新代码和所绘制的图形。 编辑器代码可以使用Source菜单中的Python Shell项目Evaluate File在Python Shell执行,或者是使用编辑器Python Shell项目Evaluate Selection在Python Shell执行。默认情况下,Python Shell会在评估整个文件之前重启;这可以在Python Shell的选项菜单中禁用。

基于图像识别的跨平台的手机自动化测试方案

断了今生、忘了曾经 提交于 2019-11-29 19:51:15
图像识别技术目前来说已经相对健全了。用来做手机的自动化测试,于是变有了可能性。思路大概就是通过一张张的截图去点击合适的位置。 airtest是跨平台的,一个脚本能在android上跑,也能在ios上跑。 项目地址: https://github.com/netease/airtest star数有点少,不过这不是问题。文档还是挺全的。 代码大部分是用python写的。 贴上代码举个例子。 # 引入模块 import airtest # 连接设备, 操作记录写到airtest.log中 dev = airtest.Device('android://ybs56213', log='airtest.log') # 点击操作 dev.click('start.png', duration=0.1) # 拖拽操作 dev.drag('a.png', 'b.png') # 等待 dev.wait('finish.png') 性能监控 # 程序性能监控 m = airtest.Monitor('android://ybs56213', 'com.netease.test') # 获取cpu和内存数据 cpu = m.cpu() mem = m.memory() # 将数据记录到日志中,每隔0.5s m.watch('filename.log', interval=0.5, background

自动 Android* 应用测试

♀尐吖头ヾ 提交于 2019-11-29 19:50:41
测试是应用开发流程中的重要环节。 对于 Android,这尤为重要,因为 Android 设备彼此之间差异很大,主要体现在以下几个方面: 屏幕尺寸和分辨率 Android 版本 外形 处理器的指令集 是否有前置摄像头、NFC、外置键盘等。 您应在多台设备上对 Android 应用进行测试。 应用测试流程包括多种测试。 让我们来了解一下手动功能测试。 测试者需要认真检查所有功能并将设备重置为初始状态。 测试者在每个应用和每部设备上重复上述操作。 该流程是手动完成的,因此非常耗时。 自动功能测试可按计划执行而无需额外成本。 例如,测试一个 build,每天晚上在所有设备上进行测试,早上分析结果并修复漏洞。 在本文中,我们将回顾几种适用于自动功能测试的工具。 我仅对 Android SDK 中包括的或在开源许可协议下发布的工具进行介绍。 自动测试的概念 我们的目标是将手动执行的操作自动化,以实现最大精度。 让我们了解一下这些操作。 我们将使用多个应用和多部 Android 设备。 对于每个应用和每部设备,我们应按照下列步骤来操作: 在设备上安装应用 启动应用 使用指定方法测试应用 卸载应用 将设备重置为初始阶段 在每个步骤中,您需要收集和分析数据,如日志和截屏。 在下文中,我们将讨论将这些步骤自动化的工具。 控制 Android 设备 首先,您需要选择用于运行自动化测试的电脑

Appium自动化测试系列2- 写一个Python测试脚本来测试一下YY语音

蓝咒 提交于 2019-11-29 07:03:32
我们在《Appium自动化测试系列1-Appium环境的安装和配置》里已经搭好了Appium的基本环境,这一章,我们就来真刀真枪使用一下Appium, 看看Appium是如果来实现自动化测试的。在写测试脚本之前,我们先安装几个必要的Python三方库。 1 安装Python的setuptools库 (因为安装Python的Selenium库需要用到它) 1) 下载setuptools文件并解压 https://pypi.python.org/pypi/setuptools/12.0.4#downloads 2) 打开CMD窗口,进入解压后的setuptools目录,执行命令python setup.py install 进行安装 D:\setuptools-12.0.4>python setup.py install 2 安装Python的Selenium库(Appium是采用WebDriver传输测试请求,利用Selenium的WebDriver功能) 1) 下载selenium文件并解压 https://pypi.python.org/pypi/selenium/2.44.0 2) 打开CMD窗口,进入解压后的selenium目录,执行命令python setup.py install 进行安装 D:\selenium-2.44.0>python setup.py

快速JavaEE轻量级框架&公用业务模块 设计&实现 6.1

落爺英雄遲暮 提交于 2019-11-29 01:22:39
使用unitils的dbunit模块进行测试。 真正的去访问数据库,每次测试之前打开一个事务,插入测试数据,业务操作,断言测试数据,回滚。 其中unitils+dbunit实现了除业务操作之外的所有步骤。 dbunit提供了将xml直接转换为数据库数据的功能。 unitils则进一步封装,提供了@DataSet,@ExpectDataset以及事务管理等功能,可以通过annotation的方式将数据文件导入数据库,也可以通过xml去断言数据,并且支持自动回滚,超级方便。 这里在使用 unitils整合dbunit的时候碰到了两个问题,记录一下。 关于问题,请分别查看下面两篇文章: unitils使用@DataSet插入测试数据,测试结束后不能回滚 mysql+unitils用@DataSet,抛NoSuchColumnException 最后,贴上一段标准DAO测试的代码: @DataSet public final class RoleDaoTest extends IntegrateBaseTest { @SpringBeanByType private RoleDao roleDao; @Test @ExpectedDataSet public void save() { Role role = new Role(); role.setName("Test Role");

安卓开发经验分享:资源、UI、函数库、测试、构建一个都不能少

南笙酒味 提交于 2019-11-28 22:49:13
除了高超的武艺,每位黑忍者还需要装备最好的武器。在软件开发的世界里,好的工具能让我们的生活变得更轻松,在更短的时间里写出更棒的代码。 时光回到2008年,那时安卓还很年轻。只有几个相关的博客和谷歌官方的几个应用开发教程,没有函数库也没有代码生成器,甚至连成熟的 设计模式 也没有(除了OOP和一些Java实践)。今非昔比,我们已经有了一个成熟的OS、很棒的开发工具、稳定的 Eclipse 插件和其他IDE,数不清的开发书籍和相关的技术博客。 这里,我想分享自己在开发安卓应用时用到的工具和一些技巧,希望可以让大家少走一些弯路。 1. 资源 所有的UI指南都可以在 这里 找到。有些时候我们需要快速地找到资源,我们需要工具栏图标、主题、其他图标和各种安卓应用需要的设计资源。 Android Assets Studio 是最佳工具之一。它可以为你生成各种分辨率 (mdpi, hdpi, xhdpi)的启动器、标签、工具栏、菜单图标,可以按照你的配色 生成主题 ,还可以 生成工具栏资源 适用于Sherlock Action Bar。转换和缩放DPI是很痛苦的,所以你需要 Android Dpi Calculator 2. UI组件 只要遵循安卓官方的UI设计理念,我们就在重用UI组件。有很多优秀的通用组件可以利用,当然你可以基于他们开发适合自己的组件。你可以在 Android Views

Appium自动化测试系列1

只谈情不闲聊 提交于 2019-11-28 10:13:00
之前一直使用Robotium做为Android App测试框架的底层基础,受限于跨进程,以及控件加载的一些限制,很多特殊场景无法覆盖,决定尝试久闻的Appium(它也差不多成熟了),顺便做个笔记,方便其他有同样需求的朋友。 先从安装说起吧,关于Appium的安装,网上的资料大多语焉不详,基本上你按照他们写的步骤,是不可能装的出一个完整的环境的。所以,为了把步骤写得详细一点,自己从无到有反复试了几次,确保自己的安装步骤是完整的。(当然,安装方法其实有多种,这里只是其中的一种而已。) 这里以Python作为脚本开发语言为例: 1 安装并配置JDK,1.6或者1.7版均可,建议1.7,Java SDK的安装很简单,不详述了。( 装JDK是因为后面Android SDK要依赖它 ) 2 安装Android SDK并配置环境变量(测试中用到Android SDK的一些工具) 1) 安装Android SDK https://developer.android.com/sdk/installing/index.html?pkg=tools 2) 安装完毕后启动Android SDK Manger ( SDK Manager.exe,在Android SDK的安装目录下),安装需要的Android Packages,比如一些工具,需要的Android版本, EABI(模拟器相关的包)等等 3)