Improve ui-test video

This commit is contained in:
Thomas Nordquist
2019-06-18 17:26:10 +02:00
parent f1a2ae16c1
commit 68118248c9
4 changed files with 34 additions and 57 deletions

View File

@@ -12,7 +12,6 @@ import { disconnect } from './scenarios/disconnect'
import { publishTopic } from './scenarios/publishTopic' import { publishTopic } from './scenarios/publishTopic'
import { SceneBuilder } from './SceneBuilder' import { SceneBuilder } from './SceneBuilder'
import { showAdvancedConnectionSettings } from './scenarios/showAdvancedConnectionSettings' import { showAdvancedConnectionSettings } from './scenarios/showAdvancedConnectionSettings'
import { showJsonFormatting } from './scenarios/showJsonFormatting'
import { showJsonPreview } from './scenarios/showJsonPreview' import { showJsonPreview } from './scenarios/showJsonPreview'
import { showMenu } from './scenarios/showMenu' import { showMenu } from './scenarios/showMenu'
import { showNumericPlot } from './scenarios/showNumericPlot' import { showNumericPlot } from './scenarios/showNumericPlot'
@@ -59,11 +58,11 @@ async function doStuff() {
const scenes = new SceneBuilder() const scenes = new SceneBuilder()
await scenes.record('connect', async () => { await scenes.record('connect', async () => {
await connectTo('127.0.0.1', browser) await connectTo('127.0.0.1', browser)
await sleep(2000) await sleep(1000)
}) })
await scenes.record('numeric_plots', async () => { await scenes.record('numeric_plots', async () => {
await showText('Plot topic history', 2000, browser) await showText('Plot topic history', 1500, browser)
await showNumericPlot(browser) await showNumericPlot(browser)
await sleep(2000) await sleep(2000)
}) })
@@ -80,20 +79,14 @@ async function doStuff() {
}) })
await scenes.record('publish_topic', async () => { await scenes.record('publish_topic', async () => {
await showText('Publish topics', 2000, browser, 'top') await showText('Publish topics', 1500, browser, 'top')
await clickOnHistory(browser) await clickOnHistory(browser)
await publishTopic(browser) await publishTopic(browser)
await sleep(1000) await sleep(1000)
}) })
await scenes.record('json_formatting_publish', async () => {
await showText('Write JSON with ease', 2000, browser, 'top')
await showJsonFormatting(browser)
await sleep(1000)
})
await scenes.record('clipboard', async () => { await scenes.record('clipboard', async () => {
await showText('Copy to Clipboard', 2000, browser) await showText('Copy to Clipboard', 1500, browser)
await copyTopicToClipboard(browser) await copyTopicToClipboard(browser)
await hideText(browser) await hideText(browser)
await copyValueToClipboard(browser) await copyValueToClipboard(browser)
@@ -112,25 +105,25 @@ async function doStuff() {
await scenes.record('delete_retained_topics', async () => { await scenes.record('delete_retained_topics', async () => {
await hideText(browser) await hideText(browser)
await showText('Delete retained topics', 0, browser) await showText('Delete retained topics', 5000, browser)
await clearOldTopics(browser) await clearOldTopics(browser)
await hideText(browser) await hideText(browser)
}) })
await scenes.record('settings', async () => { await scenes.record('settings', async () => {
await showText('Display Options', 2000, browser) await showText('Settings', 1500, browser)
await showMenu(browser) await showMenu(browser)
}) })
await scenes.record('customize_subscriptions', async () => { await scenes.record('customize_subscriptions', async () => {
await sleep(2000) await sleep(2000)
await disconnect(browser) await disconnect(browser)
await showText('Customize Subscriptions', 1000, browser, 'top') await showText('Customize Subscriptions', 1500, browser, 'top')
await showAdvancedConnectionSettings(browser) await showAdvancedConnectionSettings(browser)
}) })
await scenes.record('keyboard_shortcuts', async () => { await scenes.record('keyboard_shortcuts', async () => {
await showText('Keyboard shortcuts', 1750, browser, 'middle') await showText('Keyboard shortcuts', 1500, browser, 'middle')
await sleep(1750) await sleep(1750)
await showZoomLevel(browser) await showZoomLevel(browser)
}) })

View File

@@ -52,7 +52,9 @@ function generateData(client: mqtt.MqttClient) {
retain: true, retain: true,
qos: 0, qos: 0,
}) })
intervals.push(setInterval(() => client.publish('livingroom/temperature', temperature()), 1000)) intervals.push(
setInterval(() => client.publish('livingroom/temperature', temperature(), { retain: true, qos: 0 }), 1000)
)
intervals.push(setInterval(() => client.publish('livingroom/humidity', temperature(60, -2, 0)), 1000)) intervals.push(setInterval(() => client.publish('livingroom/humidity', temperature(60, -2, 0)), 1000))
client.publish('livingroom/lamp-1/state', 'on', { retain: true, qos: 0 }) client.publish('livingroom/lamp-1/state', 'on', { retain: true, qos: 0 })
@@ -72,7 +74,7 @@ function generateData(client: mqtt.MqttClient) {
if (topic === 'kitchen/lamp/set') { if (topic === 'kitchen/lamp/set') {
setTimeout( setTimeout(
() => () =>
client.publish('kitchen/lamp/state', payload, { client.publish('kitchen/lamp/state', JSON.parse(payload.toString()).state, {
retain: true, retain: true,
qos: 0, qos: 0,
}), }),
@@ -96,8 +98,12 @@ function generateData(client: mqtt.MqttClient) {
}, 1500) }, 1500)
) )
intervals.push(setInterval(() => client.publish('kitchen/temperature', temperature()), 1500)) intervals.push(
intervals.push(setInterval(() => client.publish('kitchen/humidity', temperature(60, -5, 0)), 1800)) setInterval(() => client.publish('kitchen/temperature', temperature(), { retain: true, qos: 0 }), 1500)
)
intervals.push(
setInterval(() => client.publish('kitchen/humidity', temperature(60, -5, 0), { retain: true, qos: 0 }), 1800)
)
client.publish('garden/pump/state', 'off', { retain: true, qos: 0 }) client.publish('garden/pump/state', 'off', { retain: true, qos: 0 })
client.publish('garden/water/level', '70%', { retain: true, qos: 0 }) client.publish('garden/water/level', '70%', { retain: true, qos: 0 })

View File

@@ -17,10 +17,11 @@ export async function publishTopic(browser: Browser) {
await writeText('set', browser, 300) await writeText('set', browser, 300)
const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]') const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]')
await payloadInput.setValue('o') await writeTextPayload(payloadInput, '{"action": "setState", "state": "on" }')
await sleep(300)
await payloadInput.setValue('n') await sleep(500)
await sleep(700) const formatJsonButton = await browser.$('#sidebar-publish-format-json')
await clickOn(formatJsonButton, browser)
const publishButton = await browser.$('#publish-button') const publishButton = await browser.$('#publish-button')
await moveToCenterOfElement(publishButton, browser) await moveToCenterOfElement(publishButton, browser)
@@ -28,4 +29,15 @@ export async function publishTopic(browser: Browser) {
await sleep(500) await sleep(500)
await clickOn(publishButton, browser) await clickOn(publishButton, browser)
const sidebarDrawer = await browser.$('#Sidebar')
await sidebarDrawer.scrollIntoView()
}
async function writeTextPayload(payloadInput: any, text: string) {
const chars = text.split('')
for (const char of chars) {
await payloadInput.setValue(char)
await sleep(10)
}
} }

View File

@@ -1,34 +0,0 @@
import { Browser, Element } from 'webdriverio'
import { clickOn, sleep } from '../util'
export async function showJsonFormatting(browser: Browser) {
const editor = await browser.$('//*[contains(@class, "ace_editor")]')
const formatJsonButton = await browser.$('#sidebar-publish-format-json')
const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]')
await clickOn(editor, browser)
await browser.keys(['\uE009', 'A']) // Ctrl + A
await sleep(200)
await browser.keys(['\uE000']) // End keyboard modifier
await sleep(200)
await browser.keys(['\uE003']) // Backspace
await sleep(200)
await browser.keys(['\uE009', 'A']) // Ctrl + A
await browser.keys(['\uE000']) // End keyboard modifier
await browser.keys(['\uE003']) // Backspace
await sleep(200)
await writeTextPayload(payloadInput, '{"action": "setState", "state": "on" }')
await sleep(300)
await clickOn(formatJsonButton, browser)
await sleep(1200)
const sidebarDrawer = await browser.$('#Sidebar')
await sidebarDrawer.scrollIntoView()
}
async function writeTextPayload(payloadInput: any, text: string) {
const chars = text.split('')
for (const char of chars) {
await payloadInput.setValue(char)
await sleep(10)
}
}