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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?