接口自动化测试平台-HttpRunnerManager-示例、创建启动快捷方式

2022-07-25 14:10:07 浏览数 (1)

示例、创建启动快捷方式

目录

  • 1、示例一:Get请求
  • 2、示例二:Post请求
  • 3、示例三:参数列表
  • 4、示例四:依赖请求
  • 5、创建启动服务快捷方式

1、示例一:Get请求

接口请求地址:http://localhost:8083/getdemo?username=admin&password=123456

如图所示:先使用Postman,访问此接口。

GET请求,2个参数username、password

返回数据为admin,123456

1、登录HttpRunnerManager,项目(MyTest)、模块(module 1)、运行环境(测试环境)已创建完成。

2、用例管理--->新增用例,用例名称TestGet。

(1)messages:选择所属项目(MyTest),可选模块(module 1)。

(2)request:填写URL(/getdemo),选择Method(GET),选择Type(params),填写2个参数username、password和所对应的值。

(3)extract/validate:填写接口断言。

检查content 比较方式equals 预期结果admin,123456

3、执行用例,例如在用例列表里选中此用例,之后选择运行环境,点击确定执行。

4、报告执行结果,接口断言验证通过。

2、示例二:Post请求

接口请求地址:http://localhost:8083/postdemo

如图所示:先使用Postman,访问此接口。

POST请求,2个表单参数username、password

返回数据为admin,123456

1、登录HttpRunnerManager,项目(MyTest)、模块(module 1)、运行环境(测试环境)已创建完成。

2、用例管理--->新增用例,用例名称TestPost。

(1)messages:选择所属项目(MyTest),可选模块(module 1)。

(2)request:填写URL(/postdemo),选择Method(POST),选择Type(data),填写2个表单参数username、password和所对应的值。

(3)extract/validate:填写接口断言。

检查content 比较方式equals 预期结果admin,123456

3、执行用例,例如在用例列表里选中此用例,之后选择运行环境,点击确定执行。

4、报告执行结果,接口断言验证通过。

3、示例三:参数列表

接口请求地址:http://localhost:8083/postdemo

如图所示:先使用Postman,访问此接口。

POST请求,2个表单参数username(值固定)、password(值不固定)

username(值为admin)、password(值为123456),返回数据为admin,123456

username(值为admin)、password(值为abcdef),返回数据为admin,abcdef

1、登录HttpRunnerManager,项目(MyTest)、模块(module 1)、运行环境(测试环境)已创建完成。

2、用例管理--->新增用例,用例名称TestParameters

(1)messages:选择所属项目(MyTest),可选模块(module 1)。

(2)request:填写URL(/postdemo),选择Method(POST),选择Type(data),填写2个表单参数username、password和引用所对应的变量值username、password

(3)extract/validate:填写接口断言。

检查content 比较方式contained_by 预期结果["admin,123456","admin,abcdef"]

(4)variables/parameters/hooks:添加参数列表,此用例会执行2次。

username-password:[['admin', '123456'], ['admin', 'abcdef']]

3、执行用例,例如在用例列表里选中此用例,之后选择运行环境,点击确定执行。

4、报告执行结果,此用例执行2次。

接口断言验证通过。

4、示例四:依赖请求

有两个接口,接口1执行后返回的数据里有接口2需要用到的请求参数,则执行接口2时,要先执行接口1获取返回的指定数据。

接口1请求地址:http://localhost:8083/demo?aaa=123&bbb=456&ccc=789

如图所示:先使用Postman,访问此接口。

GET请求,3个参数aaa、bbb、ccc

返回json数据为:

{

"mystatus": "操作成功",

"mytoken": "eyJhbGciOiJIUzI1NiJ9"

}

接口2请求地址:http://localhost:8083/demo2

如图所示:先使用Postman,访问此接口。

POST请求,请求头有2个参数Content-Type、mytoken

返回json数据为:

{

"mystatus": "操作成功",

"mystatusid": "1"

}

发送json串。

一、登录HttpRunnerManager,项目(MyTest)、模块(module 1)、运行环境(测试环境)已创建完成。

二、配置管理--->新增配置,配置名称config。

1、messages:选择所属项目(MyTest),可选模块(module 1),编写人员(test)。

2、variables/parameters/hooks:填写全局变量(接口1和接口2都有参数ccc,可以设置为公用)。ccc:789

三、执行接口1。

1、用例管理--->新增用例,接口1用例名称Test1。

(1)messages:选择所属项目(MyTest),可选模块(module 1),可选配置(config)。

(2)request:填写URL(/demo),选择Method(GET),选择Type(params),填写3个参数aaa、bbb、ccc和引用所对应的变量值aaa、bbb、

(3)extract/validate:抽取接口返回值(接口2会调用此变量值)token:content.mytoken

填写接口断言($token调用抽取的返回值content.mytoken):

检查status_code 比较方式equals 预期结果200

检查content.mystatus 比较方式equals 预期结果操作成功

检查$token 比较方式equals 预期结果eyJhbGciOiJIUzI1NiJ9

(4)variables/parameters/hooks:填写局部变量,只在当前接口1用例有效。

aaa:123

bbb:456

2、执行接口1用例,例如在用例列表里选中此用例,之后选择运行环境,点击确定执行。

3、报告执行结果,接口断言验证通过。

四、执行接口2。

1、项目管理--->debugtalk.py,新增get_sleep()、get_userId()、get_userValue()函数。

debugtalk.py脚本代码:

代码语言:javascript复制
# debugtalk.py
import MySQLdb.cursors
import time

# 等待
def get_sleep(n):
  time.sleep(n)

# 数据库连接
def get_conn():
    conn = MySQLdb.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        passwd='123456',
        db='httprunnermanager',
        charset='utf8',
        # sql返回的是字典类型
        cursorclass=MySQLdb.cursors.DictCursor
    )
    return conn.cursor()

# 获取ID
def get_userId():
    cur = get_conn()
    cur.execute("SELECT * FROM `httprunnermanager`.`userinfo` WHERE `username`='test'")
    result = cur.fetchone()
    print(str(result['id']))
    return str(result['id'])

# 获取指定值
def get_userValue():
    userValue = 'test'
    return userValue

2、用例管理--->新增用例,接口2用例名称Test2。

(1)messages:选择所属项目(MyTest),可选模块(module 1),可选配置(config),可选用例(Test1)。

(2)request:填写URL(/demo2),选择Method(POST),选择Type(json),json串里调用debugtalk.py脚本里的get_userId()函数、get_userValue()函数和引用所对应的变量值$ccc

json串:

代码语言:javascript复制
{
    "id": "${get_userId()}",
    "username": "${get_userValue()}",
    "password": "123456",
    "ccc": "$ccc"
}

请求头($token调用抽取接口1的返回值content.mytoken):

content-type:application/json

mytoken:$token

(3)extract/validate:填写接口断言。

检查status_code 比较方式equals 预期结果200

检查content.mystatus 比较方式equals 预期结果操作成功

检查content.mystatusid 比较方式equals 预期结果1

(4)variables/parameters/hooks:设置hook机制。

setup_hooks调用debugtalk.py脚本里的get_sleep()函数,调用此函数方法是${get_sleep(2)}

含义为:当接口1执行完成后,等待2秒,之后再执行接口2。

3、测试计划--->测试套件,新增套件,执行用例选择Test2,测试套件名称TestSuite。

4、执行测试套件TestSuite,选择运行环境,执行方式为异步执行。

5、报告管理--->查看报告,测试结果为成功。

打开测试报告,执行2个接口(先执行Test1,之后执行Test2)。

接口断言验证通过,例如Test2。

5、创建启动服务快捷方式

由于每次启动HttpRunnerManager服务都要打开多个命令行,输入命令去操作显得很麻烦。

所以创建启动服务快捷方式可以解决这个麻烦的操作。

1、在HttpRunnerManager安装目录里创建“启动HttpRunnerManager服务.bat”文件。

2、启动HttpRunnerManager服务.bat文件内容:

代码语言:javascript复制
start cmd /c "cd �%&&del /a celerybeat.pid"
start cmd /k "cd �%&&TIMEOUT /T 2&&python manage.py runserver 0.0.0.0:8000"
start cmd /k "cd �%&&TIMEOUT /T 4&&python manage.py celery -A HttpRunnerManager worker --loglevel=info"
start cmd /k "cd �%&&TIMEOUT /T 6&&python manage.py celery beat --loglevel=info"
start cmd /k "cd �%&&TIMEOUT /T 8&&celery flower"

3、启动HttpRunnerManager服务.bat文件鼠标右键,创建桌面快捷方式。

启动HttpRunnerManager服务.bat快捷方式创建完成。

4、双击桌面上此快捷方式,自动打开命令窗口,启动服务完成。

0 人点赞