Tag: 压力testing

在节点集成testing后清理mongodb

我有一个与mongodb后端节点写api。 我正在使用supertest自动testingapi。 当然这会导致数据库发生很多变化,我希望得到一些关于pipe理这个选项的信息。 目标是每个testing对数据库没有永久的影响。 testing完成后,数据库看起来应该和testing运行之前一模一样。 在我的情况下,我不希望数据库在testing之间被丢弃或完全清空。 我需要随时在数据库中维护一些真实的数据。 我只是想通过testing本身的变化被恢复。 在关系数据库中,我会在每个unit testing周围进行事务处理,并在testing完成(合格或失败)后将其回滚。 据我所知,这不是mongo的select。 我考虑过的一些选项: 假数据库 我听说内存数据库像fongo (这是一个Java的东西)和tingodb 。 我没有使用过这些解决scheme,但是这种解决scheme的问题总是需要与实际产品保持一致,才能将其作为一个可行的select。 只要我使用了假的不支​​持的mongofunction,我将有一个unit testing的问题。 手动清理 总是有一个例程,可以findtesting中添加的所有数据(以某种方式标记)并将其删除。 在这里你必须小心更新和删除。 也可能有很多保养,确保清理程序准确清理的东西。 数据库复制 如果速度足够快,可能有一个基准testing数据库,并在每个testing工作之前复制它。 它必须是相当快,虽然。 那么人们通常如何处理呢?

在TFS上发布没有findNode.jstesting项目的pubxml文件

我使用Node.js工具为一个量angular器testing环境创build了一个Node.js项目来testing团队基础服务器上的一个Web应用程序。 testing项目和Web应用程序在一个解决scheme文件中。 但是,如果我想在tfs上部署Node.js项目,则无法find位于Web应用程序项目中的pubxml文件。 错误日志: 12>CoreCompile: Creating directory "bin". Copying file from "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Node.js Tools\Microsoft.NodejsTools.WebRole.dll" to "bin\Microsoft.NodejsTools.WebRole.dll". ValidatePublishProfileSettings: Validating PublishProfile(TestProfile) settings. 12>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4364,5): error : The value for PublishProfile is set to 'TestProfile', expected to find the file at '<PATH>\TestProject.Web.Protractor.Tests\__profiles\TestProfile.pubxml' but it could not be found. [<PATH>\TestProject.Web.Protractor.Tests.njsproj] 12>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4371,4): error : PublishProfile(TestProfile) is […]

一个简单的Node.JS基准

我正试图确定这是否是一个公平的基准。 目标是试图查看有多less并发连接与各种规模的Node.JS可以处理的有效负载。 代码如下。 var express = require('express'); var Sequelize = require('sequelize'); var fs = require('fs'); var app = express(); var data; var filename = process.argv[2] || './start.json'; console.log("Using: " + filename); data = fs.readFileSync(filename); var blockSize = 250000; app.get('/start', function (req, res) { // Break up data in blocks. Works to super high concurrents. // […]

在本地安装JSBin

我想跟随这个页面在本地运行JSBin。 我在我的Mac中安装了xcode 8.2 。 现在, npm -v返回3.10.9 ; node -v返回v7.2.1 。 在git clone git@github.com:remy/jsbin.git和cd jsbin ,我修改了package.json ,使其具有"memcached": "2.2.2" (参见本线程 ),然后npm install返回 /Users/softtimur/Startup/WebProjects/tmp/jsbin$ npm install npm WARN deprecated jade@1.4.2: Jade has been renamed to pug, please install the latest version of pug instead of jade npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher […]

如何跨多个testing目录运行茉莉花规格

Jasmine被设置为在一个目录下运行它的规格。 它没有设置从多个spec目录查找和运行testing。 这是我的项目结构: project root: / package.json spec –> jasmine_examples module_a –> spec module_b –> spec module_c –> spec 如果我想从每个模块运行testing,我必须指定每个spec文件。 "spec_files": [ "module_a/spec/spec.js", "module_b/spec/spec.js", "module_c/spec/spec.js" ], 这允许我运行jasmine cli,但它不是可扩展的。 一定会有更好的办法。 我不想手动指定每个包含规范的模块。 我想所有的目录recursionsearch规格。 我只使用JSDom运行这些节点,没有噶或任何无头浏览器。

在Nodejs上的基准并发连接?

我正在玩nodejs,并希望得到一些关于如何使用诸如nowjs,socket.io等在nodejs中的websocket上的并发连接进行基准testing的指南。

跨平台JavaScript单元和系统testing的现状

对于JavaScript项目,asynchronous系统和unit testing框架最适合在node.js和web浏览器中使用。 理想情况下,testing系统将能够执行一些专门为node.js和一些在web浏览器中的testing,同时也具有在所有环境中运行的通用testing。 另外,有没有人做自动化浏览器testing?

在“集成”testing中了解摩卡语法

我有一个相当广泛的背景与Ruby和Rspec。 然而,当我学习Node和Mocha时,我遇到了一些我似乎无法理解的语法。 以本教程为例,testing路由包含以下内容(使用CoffeeScript)。 还应该指出,我已经看到了很多其他的地方向摩卡解释初学者的例子。 require "should" routes = require "../routes/index" describe "routes", -> describe "index", -> it "should display index with posts", -> req = null res = render: (view, vars) -> view.should.equal 'index' vars.title.should.equal('My Coffeepress Blog') routes.index(req, res) 如果我理解正确,这个testing设置模拟请求和响应variables(分别为req和res),并将它们发送到routes.index()函数。 但是, 我不明白的是,为什么以及如何在render()函数调用中进行断言。 这似乎是一个完全不同的testing方法,因为我习惯于设置数据,testing数据与预期值,并将数据撕掉。 在这里,似乎“build立数据”(创build一个模拟的res对象)的一部分正在作出断言。 任何人都可以解释这一点与Rspecstream利的人?

摩卡在testing中保存文件状态

我有一个unit testing,正在testingconfiguration文件的更新…当然,我运行testing后,我的文件现在改变了。 我想我可以使用“之前”来caching文件,并在“之后”恢复。 mod = require('../modtotest'); describe('Device Configuration', function(){ var confPath = '../config/config.json'; var config; before(function(){ //cache object config = require(confPath); }) describe('Update Config', function(){ it('Should update config', function(done){ mod.updateConfig(); //do assertions }) }); after(function(){ //restore fs.writeFileSync(confPath, JSON.stringify(config, null, 4)); }) }) 但是,每当我尝试这样做,它说该文件不存在。 看起来,当我运行Mocha( -> app $mocha -R spec )时,它会在我执行它的地方执行全局安装目录吗? 有一个简单的方法来实现我想要的? 或者我可能只是把它全部弄错了?

如何testingREST API +客户端MVC应用程序?

如果你有一个RESTful服务器,它只通过从数据库获取一些信息来响应JSON,然后你有一个客户端应用程序,比如Backbone,Ember或者Angular,你从哪一边testing一个应用程序? 我是否需要两个testing – 一个用于后端testing,另一个用于前端testing? 我问的原因是testingREST API本身是一种困难。 考虑这个代码示例(使用Mocha,Supertest,Express): var request = require('supertest'); var should = require('chai').should(); var app = require('../app'); describe('GET /api/v1/people/:id', function() { it('should respond with a single person instance', function(done) { request(app) .get('/api/v1/people/:id') .expect(200) .end(function(err, res) { var json = res.body; json.should.have.property('name'); done(); }); }); }); 注意:id在URL中的:id ? 这是一个特定人物的ObjectId。 我怎么知道要通过那里? 在这一点上,我甚至没有看过数据库。 我的意思是我需要导入Person模型,连接到数据库,并从testing内部做查询? 也许我应该把我的整个app.js移动到testing中? (讽刺:P)。 […]