Smashtest

Smashtest 是一个开源的工具和语言,用于快速生成测试。该仓库是 Smashtest 核心和软件包。「Smashtest is an open-source tool and language for rapidly generating tests. This repository is the Smashtest core and packages.」

Github星跟踪图

Smashtest • Generate tests fast

npm version
Join the chat at https://gitter.im/smashtestio/community

What is Smashtest?

Smashtest is an open-source tool and language for rapidly generating tests.

Greatly speed up your web automated testing by writing tests in a tree-like format.

Trees represent how we think when we're testing. They allow us to list all the permutations that branch off from any given point.

  • Multiple browsers and devices
  • UI and API
  • Run tests in parallel
  • Human-readable steps
  • Awesome live reports
  • Run locally or in CI/CD

Sample test

Open Chrome
Open Firefox
Open Safari

    Navigate to 'site.com'

        Click 'Sign In'

            Type {username:} into 'username box'

                {username} is 'joe'
                {username} is 'bob'
                {username} is 'mary'

                    Verify success

                {username} is 'baduser'

                    Verify error

represents

Test Case 1                        Test Case 2                        Test Case 3
-----------                        -----------                        -----------
Open Chrome                        Open Firefox                       Open Safari
Navigate to 'site.com'             Navigate to 'site.com'             Navigate to 'site.com'
Click 'Sign In'                    Click 'Sign In'                    Click 'Sign In'  
Type 'joe' into 'username box'     Type 'joe' into 'username box'     Type 'joe' into 'username box'
Verify success                     Verify success                     Verify success


Test Case 4                        Test Case 5                        Test Case 6
-----------                        -----------                        -----------
Open Chrome                        Open Firefox                       Open Safari
Navigate to 'site.com'             Navigate to 'site.com'             Navigate to 'site.com'
Click 'Sign In'                    Click 'Sign In'                    Click 'Sign In'  
Type 'bob' into 'username box'     Type 'bob' into 'username box'     Type 'bob' into 'username box'
Verify success                     Verify success                     Verify success


Test Case 7                        Test Case 8                        Test Case 9
-----------                        -----------                        -----------
Open Chrome                        Open Firefox                       Open Safari
Navigate to 'site.com'             Navigate to 'site.com'             Navigate to 'site.com'
Click 'Sign In'                    Click 'Sign In'                    Click 'Sign In'  
Type 'mary' into 'username box'    Type 'mary' into 'username box'    Type 'mary' into 'username box'
Verify success                     Verify success                     Verify success


Test Case 10                       Test Case 11                       Test Case 12
------------                       ------------                       ------------
Open Chrome                        Open Firefox                       Open Safari
Navigate to 'site.com'             Navigate to 'site.com'             Navigate to 'site.com'
Click 'Sign In'                    Click 'Sign In'                    Click 'Sign In'  
Type 'baduser' into 'username box' Type 'baduser' into 'username box' Type 'baduser' into 'username box'
Verify error                       Verify error                       Verify error

which represents

Test Case 1
-----------
let driver = await new Builder().forBrowser('chrome').build();
await driver.get('http://site.com');
let signInButton = await driver.findElement(By.id('#sign-in'));
await signInButton.click();
await driver.wait(until.elementLocated(By.id('#username-box')), 10000);
let usernameBox = await driver.findElement(By.id('#username-box'));
await usernameBox.sendKeys('joe');
await driver.wait(until.elementLocated(By.id('#success-element')), 10000);


Test Case 2
-----------
let driver = await new Builder().forBrowser('firefox').build();
await driver.get('http://site.com');
let signInButton = await driver.findElement(By.id('#sign-in'));
await signInButton.click();
await driver.wait(until.elementLocated(By.id('#username-box')), 10000);
let usernameBox = await driver.findElement(By.id('#username-box'));
await usernameBox.sendKeys('joe');
await driver.wait(until.elementLocated(By.id('#success-element')), 10000);


etc.

Full documentation

See smashtest.io for full documentation, setup, tutorials, and screenshots

Usage

smashtest [.smash files to run] [options]

Use smashtest -? to list options

主要指标

概览
名称与所有者smashtestio/smashtest
主编程语言TypeScript
编程语言JavaScript (语言数: 6)
平台
许可证MIT License
所有者活动
创建于2019-07-03 15:52:57
推送于2023-09-15 02:21:48
最后一次提交2023-09-15 04:14:57
发布数24
最新版本名称v1.9.2 (发布于 )
第一版名称v1.6.4 (发布于 2019-11-04 14:50:54)
用户参与
星数513
关注者数20
派生数22
提交数1.4k
已启用问题?
问题数52
打开的问题数14
拉请求数22
打开的拉请求数3
关闭的拉请求数11
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?