前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口自动化测试平台-HttpRunnerManager-示例、创建启动快捷方式

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

作者头像
wangmcn
发布2022-07-25 14:10:07
1K0
发布2022-07-25 14:10:07
举报
文章被收录于专栏:AllTests软件测试

示例、创建启动快捷方式

目录

  • 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 %cd%&&del /a celerybeat.pid"
start cmd /k "cd %cd%&&TIMEOUT /T 2&&python manage.py runserver 0.0.0.0:8000"
start cmd /k "cd %cd%&&TIMEOUT /T 4&&python manage.py celery -A HttpRunnerManager worker --loglevel=info"
start cmd /k "cd %cd%&&TIMEOUT /T 6&&python manage.py celery beat --loglevel=info"
start cmd /k "cd %cd%&&TIMEOUT /T 8&&celery flower"

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档