标签: functional-testing

如何制作"腐败"文件

假设在测试期间,您希望测试软件如何处理"损坏"文件.

我有两个问题:

1.一般来说,如何定义"损坏"文件?换句话说,什么构成了腐败文件?

举个例子:

假设您需要测试"损坏的".pdf文件.

一个建议是简单地获取.zip文件,更改扩展名,然后测试.但是,我认为你没有测试程序如何处理"损坏的.pdf文件",而是测试它如何处理.zip文件.

另一个建议是打开文件并插入/删除随机字节.这个建议没问题,但有一些问题:

  • 修改或删除的部分可能(尽管不太可能)是无关紧要的.例如,您可以简单地删除一个巨大字符串的一部分,这将修改数据,但不一定会破坏文件.
  • 可以通过程序拒绝读取文件的方式修改文件.例如,如果删除.pdf标头,那么API(或您正在使用的任何标头)可能不会超过该点,并且根本无法测试该文件.
  • 与第一个项目符号类似:如果对文件进行了足够大的修改,则会产生一个参数,即生成的文件不再与原始文件格式相同.所以,再次,如果您要删除.pdf标头,那么该文件可能不再是.pdf文件.因此,尝试测试它不会测试损坏的.pdf文件,而是测试.pdf文件的一些奇怪变体.

2.一旦定义了损坏的文件,你如何创建一个?


这是我到目前为止所想的:

"损坏的文件"是一个正确符合文件格式规范但包含本身存在缺陷的数据/字节的文件.

我能想到的唯一例子是你是否以某种方式更改了文件的编码.然后,您可以将此方法应用于任意格式的文件.

谢谢阅读.

testing unit-testing functional-testing

11
推荐指数
1
解决办法
2万
查看次数

如何在symfony2功能测试中发出https请求?

嗨,我使用phpunit进行测试,使用Symfony\Bundle\FrameworkBundle\Test\WebTestCase进行单元测试.到目前为止没有问题,但现在我们开始使用https,我的测试不再工作了.我的测试中的每个请求都开始得到301响应代码.我的问题是我如何告诉Symfony的\分量\ HttpKernel \客户端发出请求到 HTTPS://localhost.com/uri而不是HTTP://localhost.com/uri?

编辑

在symfony网站http://symfony.com/doc/current/book/testing.html中,他们展示了如何配置服务器参数,并且有一个像

$client->request(
 'GET',
 '/demo/hello/Fabien',
 array(),
 array(),
 array(
     'CONTENT_TYPE'          => 'application/json',
     'HTTP_REFERER'          => '/foo/bar',
     'HTTP_X-Requested-With' => 'XMLHttpRequest',
 )
);
Run Code Online (Sandbox Code Playgroud)

我试图提供http://php.net/manual/en/reserved.variables.server.php中提到的HTTPS元素,将我的代码更改为

$client->request('GET',
         '/'.$version.'/agencies/'.$agencyId,
         array(), 
         array(),
         array('HTTPS' => 'on')
         );
Run Code Online (Sandbox Code Playgroud)

但是,它仍然无法正常工作?

php https functional-testing http-status-code-301 symfony

11
推荐指数
1
解决办法
3209
查看次数

功能测试和系统测试之间的区别?

我听说系统测试有两种类型

1)功能测试2)非功能测试

但后来在另一个网站上我看到了下面的陈述

In the types of functional testing following testing types should be cover:

Unit Testing
Smoke testing
Sanity testing
Integration Testing
Interface Testing
System Testing
Regression Testing
UAT
Run Code Online (Sandbox Code Playgroud)

我很困惑,请告诉我,系统测试是否包括功能或功能测试包括系统测试和这些测试的顺序(功能是先执行还是系统执行)

谢谢

testing functional-testing system-testing

11
推荐指数
2
解决办法
4万
查看次数

将鼠标悬停在nightwatchjs中的链接上

我一直在使用nightwatch.js并且总是点击元素.有没有办法我们可以将鼠标悬停在链接或按钮上?

jquery selenium functional-testing node.js nightwatch.js

11
推荐指数
2
解决办法
8195
查看次数

Selenium v​​s. SimpleTest vs. WatiN

似乎Selenium/WatiNSimpleTest之间的比较很少(它也有Web测试功能).

我尝试了Selenium并发现GUI非常适合创建测试,因为您可以看到正在进行的操作并且无需手动键入所有命令即可进行记录.

至于运行测试,Selenium比SimpleTest更复杂.对于SimpleTest,您只需运行一个PHP脚本来执行所有测试(客户端或浏览器端).这意味着无论您使用何种浏览器或浏览器设置,您都可以直接转到测试网址,它的工作方式也相同.

这里有用的是使用Selenium或WatiN的人的一些评论:为什么Selenium如此着名?换句话说,与SimpleTest相比,使用Selenium的主要好处是什么?

PS:请排除"SimpleTest需要PHP"等原因; 很明显,PHP无论如何都包含在大多数LAMP中.

php selenium watin functional-testing

10
推荐指数
2
解决办法
3805
查看次数

如何使用nosetests分别组织和运行unittests和功能测试

我有以下典型的python项目文件结构

packageA
   +----subpackage1
            +----classa.py
   +----subpackage2
            +----classb.py
   +----test
          +----subpackage1
                    +----classa_test.py 
          +----subpackage2
                    +----classb_test.py
Run Code Online (Sandbox Code Playgroud)

我目前正在尝试组织我的单元测试和功能测试,因此我可以使用nose单独运行unittests和功能测试,但也可以选择运行所有测试.测试将存在于packageA/test/subpackage1和packageA/test/subpackage2中.

  • 组织不同测试的好方法是什么?按文件夹(功能/ vs单位/)?通过命名测试类的约定(ClassATest vs ClassAFunctionalTest)?或者通过命名测试方法的约定(classa_foo_test vs classa_bar_functional_test)?
  • 有人能解释一下nosetests的正则表达式匹配是如何工作的吗?选项-m,-i和-e似乎没有像我期望的那样运行.正则表达式是匹配目录(subpackage1),文件(classa_test)还是测试类(ClassATest)还是测试方法(classa_foo_test)?我非常困惑

python unit-testing functional-testing nose nosetests

10
推荐指数
1
解决办法
3675
查看次数

如何使用Symfony 2 Dom Crawler按ID过滤?

这有效

$this->assertEquals(1, $crawler->filter('.elementClass')->count()); // filter by class
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.

$this->assertEquals(1, $crawler->filter('#elementId')->count()); // filter by id
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

phpunit functional-testing symfony

10
推荐指数
1
解决办法
1万
查看次数

如何针对ServiceStack API编写功能测试

我们有一个使用ServiceStack连接的ASP.NET Web应用程序.我之前从未编写过功能测试,但我们的任务是针对我们的API编写测试(nUnit)并证明它一直工作到数据库级别.

有人可以帮我开始编写这些测试吗?

以下是post我们的用户服务的方法示例.

public object Post( UserRequest request )
{
    var response = new UserResponse { User = _userService.Save( request ) };

    return new HttpResult( response )
    {
        StatusCode = HttpStatusCode.Created,
        Headers = { { HttpHeaders.Location, base.Request.AbsoluteUri.CombineWith( response.User.Id.ToString () ) } }
    };
}
Run Code Online (Sandbox Code Playgroud)

现在我知道如何编写一个标准的单元测试,但我对此部分感到困惑.我是否必须通过HTTP调用WebAPI并初始化Post?我是否只是像单位测试那样调用方法?我想这是"功能测试"的一部分让我望而却步.

c# api nunit functional-testing servicestack

10
推荐指数
1
解决办法
2919
查看次数

Rails功能测试:在POST请求中发送URL查询参数

我在Rails功能测试中发送POST请求,如下所示:

post :create, collection: { name: 'New Collection' }
Run Code Online (Sandbox Code Playgroud)

collection 按预期,以JSON编码的表单数据发送.

我无法弄清楚的是如何向URL添加查询.文档说我可以访问请求对象并在发送之前对其进行修改.所以我尝试了这个:

@request.GET[:api_key] = 'my key'
post :create, collection: { name: 'New Collection' }
Run Code Online (Sandbox Code Playgroud)

但是,:api_key永远不会出现在request.GET服务器上的哈希值中.(但是,当我通过另一个HTTP客户端发送它时,它会这样做.)

ruby-on-rails functional-testing

10
推荐指数
1
解决办法
1万
查看次数

Nightwatch js如何断言多个元素

我正在尝试使用Nightwatch.js断言/验证属性的多个元素.

我尝试使用selenium的"elements"命令,但它似乎并没有真正返回一个标签.

browser.elements('css selector','icon_checkmark', function (result) {
    this.verify.attributeEquals(result.value, 'aria-hidden', 'true');
})
Run Code Online (Sandbox Code Playgroud)

控制台输出此错误:

Testing if attribute aria-hidden of <[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]> equals "true". 
Element could not be located.  - expected "true" but got: null
ERROR: Unable to locate element: "[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" using: css selector
Run Code Online (Sandbox Code Playgroud)

它似乎找到了正确的东西,因为应该有6但是不知怎的,我读出了错误的东西?result.log的result.value [0]只给出了{ELEMENT:'19'}这似乎是正确的.

知道怎么能让这个工作吗?我想检查具有类icon_checkmark的所有元素是否具有属性aria-hidden ="true".

javascript selenium accessibility functional-testing nightwatch.js

10
推荐指数
1
解决办法
1万
查看次数