示例、创建启动快捷方式
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脚本代码:
# 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串:
{
"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文件内容:
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、双击桌面上此快捷方式,自动打开命令窗口,启动服务完成。
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!