You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
6.0 KiB
230 lines
6.0 KiB
/** |
|
* HeroUnion测试用例 |
|
* 执行此测试之前,请先启动主程序,在根目录执行命令:npm start |
|
*/ |
|
|
|
import test from 'node:test'; |
|
import assert from 'node:assert'; |
|
import axios from 'axios'; |
|
import common from '../common.mjs'; |
|
import HeroUnion from '../heroUnion.mjs'; |
|
|
|
const axiosConfig = { |
|
timeout: 5000, |
|
proxy: false |
|
}; |
|
|
|
test('HeroUnion api list test', async (t) => { |
|
let api = 'http://127.0.0.1:8080/api/'; |
|
|
|
const response = await axios.get(api, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
}); |
|
|
|
test('Hero onboard test', async (t) => { |
|
let params = { |
|
name: 'test_hero', |
|
description: 'Hero test 测试爬虫', |
|
status: 'idle', |
|
timestamp: common.getTimestampInSeconds(), |
|
platforms: 'douyin,xigua', |
|
contracts: 'tajiantv', |
|
country: 'cn', |
|
lang: 'zh', |
|
contact: 'https://tajian.tv' |
|
}; |
|
|
|
let api = 'http://127.0.0.1:8080/api/onboard/'; |
|
|
|
const response = await axios.post(api, params, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
assert.equal(response.data.code, 1); |
|
|
|
|
|
params.name = 'test_hero_2'; |
|
const response2 = await axios.post(api, params, axiosConfig); |
|
console.log(response2.data); |
|
|
|
assert.equal(response2.status, 200); |
|
assert.equal(response2.data.code, 1); |
|
}); |
|
|
|
test('HeroUnion get heros test', async (t) => { |
|
let api = 'http://127.0.0.1:8080/api/heros/'; |
|
|
|
const response = await axios.get(api, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
}); |
|
|
|
test('HeroUnion create task test', async (t) => { |
|
let params = { |
|
uuid: 'herounion_demo', |
|
url: 'https://v.douyin.com/xxx', |
|
platform: 'douyin', |
|
contract: 'tajiantv', |
|
data_mode: 'json', |
|
country: 'cn', |
|
lang: 'zh', |
|
notify_url: 'https://tajian.tv/test/' |
|
}; |
|
let token = 'hello#world!'; |
|
params.sign = common.sign(params, token); |
|
|
|
let api = 'http://127.0.0.1:8080/api/newtask/'; |
|
|
|
const response = await axios.post(api, params, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
assert.equal(response.data.code, 1); |
|
}); |
|
|
|
test('HeroUnion task query test', async (t) => { |
|
let params = { |
|
uuid: 'herounion_demo', |
|
url: 'https://v.douyin.com/yyy', |
|
platform: 'douyin', |
|
contract: 'tajiantv', |
|
data_mode: 'json', |
|
country: 'cn', |
|
lang: 'zh', |
|
notify_url: 'http://127.0.0.1:8080/test/' |
|
}; |
|
let token = 'hello#world!'; |
|
params.sign = common.sign(params, token); |
|
|
|
let api = 'http://127.0.0.1:8080/api/newtask/'; |
|
|
|
const response = await axios.post(api, params, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
assert.equal(response.data.code, 1); |
|
assert.ok(response.data.task); |
|
|
|
//调用查询接口 |
|
let task_id = response.data.task.id; |
|
assert.ok(task_id); |
|
|
|
api = 'http://127.0.0.1:8080/api/querytask/'; |
|
params = { |
|
uuid: 'herounion_demo', |
|
task_id: task_id |
|
}; |
|
params.sign = common.sign(params, token); |
|
|
|
let queryOption = axiosConfig; |
|
queryOption.method = 'get'; |
|
queryOption.url = api; |
|
queryOption.params = params; |
|
|
|
const response2 = await axios(queryOption); |
|
console.log('Query task params', params,); |
|
console.log('Query task result', response2.data); |
|
|
|
assert.equal(response2.status, 200); |
|
assert.equal(response2.data.code, 1); |
|
assert.ok(response2.data.task); |
|
}); |
|
|
|
test('HeroUnion get waiting task test', async (t) => { |
|
//case 1 |
|
let params = { |
|
platforms: 'douyin,kuaishou,xigua,bilibili', |
|
contracts: 'tajiantv', |
|
data_mode: 'json', |
|
country: 'cn', |
|
lang: 'zh' |
|
}; |
|
|
|
let api = 'http://127.0.0.1:8080/api/gettask/'; |
|
|
|
let queryOption = axiosConfig; |
|
queryOption.method = 'get'; |
|
queryOption.url = api; |
|
queryOption.params = params; |
|
|
|
const response = await axios(queryOption); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
assert.equal(response.data.code, 1); |
|
assert.ok(response.data.task); |
|
|
|
//case 2 |
|
params.platforms = 'youku'; |
|
const response2 = await axios(queryOption); |
|
console.log(response2.data); |
|
|
|
assert.equal(response2.status, 200); |
|
assert.equal(response2.data.code, 0); |
|
assert.ifError(response2.data.task); |
|
}); |
|
|
|
test('HeroUnion task data save test', async (t) => { |
|
let params = { |
|
platforms: 'douyin,kuaishou,xigua,bilibili', |
|
contracts: 'tajiantv', |
|
data_mode: 'json', |
|
country: 'cn', |
|
lang: 'zh' |
|
}; |
|
|
|
let api = 'http://127.0.0.1:8080/api/gettask/'; |
|
|
|
let queryOption = axiosConfig; |
|
queryOption.method = 'get'; |
|
queryOption.url = api; |
|
queryOption.params = params; |
|
|
|
const response = await axios(queryOption); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
assert.equal(response.data.code, 1); |
|
assert.ok(response.data.task); |
|
|
|
let task = response.data.task; |
|
let task_data = { |
|
"title": "标题:HeroUnion英雄联盟", |
|
"description": "描述内容,联盟简介", |
|
"others": "其它内容" |
|
}; |
|
|
|
api = 'http://127.0.0.1:8080/api/savetask/'; |
|
params = { |
|
name: "test_hero", |
|
task_id: task.id, |
|
task_result: task_data |
|
}; |
|
params.sign = common.sign(params, task.token); //对参数进行签名 |
|
|
|
//case 1 |
|
const response2 = await axios.post(api, params, axiosConfig); |
|
console.log(response2.data); |
|
|
|
assert.equal(response2.status, 200); |
|
assert.equal(response2.data.code, 1); |
|
|
|
//case 2 |
|
const response3 = await axios.post(api, params, axiosConfig); |
|
console.log(response3.data); |
|
|
|
assert.equal(response3.status, 200); |
|
assert.equal(response3.data.code, 0); |
|
}); |
|
|
|
test('HeroUnion stats test', async (t) => { |
|
let api = 'http://127.0.0.1:8080/api/stats/'; |
|
|
|
const response = await axios.get(api, axiosConfig); |
|
console.log(response.data); |
|
|
|
assert.equal(response.status, 200); |
|
}); |