如何选择佛山网站建设,网站建设ui设计,北京网站制作建设,网站维护页面怎么做的使用教程一、配置1、环境配置2、框架配置3、启动入口二、用例编写1、用例模板2、参数依赖写法2、函数#xff08;方法插件#xff09;写法3、接口上传文件和表单参数4、接口上传json参数5、接口无数据填写6、code断言7、body断言7、json断言8、sql断言9、完整断言写法#x…
使用教程一、配置1、环境配置2、框架配置3、启动入口二、用例编写1、用例模板2、参数依赖写法2、函数方法插件写法3、接口上传文件和表单参数4、接口上传json参数5、接口无数据填写6、code断言7、body断言7、json断言8、sql断言9、完整断言写法三、邮件发送四、全局前后置五、测试一、配置
1、环境配置
环境名称自定义名称 headers键值对字典格式注意写法格式 http协议http://或这https://
2、框架配置
Environment框架测试环境配置使用之前自定义的环境的名称 log_path日志这里用自己电脑的文件路径 exclude_dir执行用例要排除的case下的二级目录例‘bd’ exclude_file执行用例要排除的case下的文件 例‘case/mb.yaml’ raw_case_path当前用例原始文件总目录 MYSQL_CONFIGMYSQL_CONFIG_1MYSQL_CONFIG_2数据库配置使用数据库操作时使用需要几个就写几个 submodule_list子模块用于数据统计就是case目录下的所有二级目录暂时无用 case_amount_sumcase_amount_execute数据统计需要无需修改
3、启动入口 二、用例编写
1、用例模板
使用请严格按照格式编写用例
#用例(名称)标题需要参数依赖的全部设置字符格式后期解析成字典列表等格式
用例标题0:#接口地址也支持参数依赖,没写path: /test/${id}#请求方法method: post#有值就用这个没用就使用默认配置的有header里面使用参数依赖的场景headers: {token:${token}}# 是否运行is_run: False# 前置sqlsql有2大类一个是查询有返回值一个是增删改无返回值前置sql为无返回值类型# precondition_sql:# - UPDATE case_test SET title 标题2, ex 44 WHERE id 2# - UPDATE case_test SET title 标题3, ex 55 WHERE id 3#请求参数较多这里就使用原始字典格式除了提取表达式其他的都带上引号预防出错,random_time()随机函数使用data:{id:${id},projectNo: 320SF000206004,name: ${name},time: ${random_int()},}#上传文件文件名路径必须是英文file:[(file, (bug.xlsx, open(C:/Users/Cassie/Desktop/bug.xlsx, rb),application/vnd.openxmlformats-officedocument.spreadsheetml.sheet))]#参数类型 json 或者 form表单data_type: json#从接口返回结果提取哪些字段和提取表达式,比如从返回数据提取用户id和nameextract_key:id: $.idname: $.name#断言表达式# 除了数字类型比较其他的字符或者表达式全部带上引号,表达式必须要写在后面必须按照格式来# 断言sql为有返回值查询assert_expression:#判断响应码是否和预期一致code: 200#判断预期值是否在返回值里面用值是否在接口返回的内容里面判断body: 内容包含#判断json提取值是否和预期一致用键和值比较等于大于小于或者in判断json:id: $.idname: $.name1: $.int#判断sql查询值是否和预期一致用键和值作判断规则和上面一致sql:#外层一个大列表里面没个小列表就是一个sql断言#小列表断言元素1是数据库名第二个是比较值第三个是逻辑运算符第四个是sql[[db_test2,$.book_jg,,SELECT book_name FROM book where book_name${book_name}],[db_test,$.title,,SELECT title FROM case where id${id}]]
2、参数依赖写法
参数依赖可以写在pathheadersdata里面 参数池{‘id’:1,‘name’:‘kk’,‘info’:{‘wo’:2}} ${id}: 相当于在参数池子里面取id的值也就是1 ${info.wo}: 相当于在参数池子里面取wo的值也就是2
2、函数方法插件写法
${random_int()}:使用函数里面的这个方法
3、接口上传文件和表单参数
data:使用引号包起来的字典作为接口表单格式参数发送(复制data里面的数据在外面加上引号) file使用引号包起来的python文件对象作为接口文件格式参数发送复制file里面的数据在外面加上引号 调试代码 data_type: 设置为form import requestsurl https://xx/filedata {uid: 78axx90011,file_name: bug.xlsx,file_type: proof_of_address}files [(raw_body, (bug.xlsx, open(C:/Users/Cassie/Desktop/bug.xlsx, rb), text/plain))]headers {Authorization: Bearer eyJ0xxxe,Accept: application/json}response requests.request(POST, url, headersheaders, datadata, filesfiles)print(response.text)用例写法 data:{uid: 78asdf99890011,file_name: bug.xlsx,file_type: proof_of_address}file:[(raw_body, (bug.xlsx, open(C:/Users/Cassie/Desktop/bug.xlsx, rb), text/plain))]data_type: form4、接口上传json参数
data:使用引号包起来的字典作为接口json格式参数发送(复制data里面的数据在外面加上引号) file不填 data_type: 设置为 json data:{waybill_no:${waybill_no},lu_dan_ren:${cc1},aa:[{a:${random_str(22)}},{b:${random_int(2)}},{c:${cc1}},{d:{d1:${random_int(2)}}}]}file:data_type: json5、接口无数据填写
都填空不写
data:
file:
data_type:6、code断言
需要填写预期接口返回码,完全相等就是断言成功 code: 2007、body断言
填写预期接口返回的内容该内容在接口返回数据里面就是断言成功 body: 5207、json断言
运单创建成功301是预期结果$.msg$.book_jg是预期结果表达式可以写多个当预期结果和预期结果表达式从接口返回提取的值相等时就是断言成功 运单创建成功: $.msg301: $.book_jg8、sql断言
格式是一个大列表嵌套一个或者多个小列表几条sql断言就几个小列表 sql断言第一个值 db_test2数据库对象需要先在config.py配置里面写上数据库连接数据然后去mysql_.py里面生成数据库对象然后把对象名写在db_list[‘db_test’,‘db_test2’]上。只有在db_list里面的数据库才可以进行断言使用
sql断言第二个值预期结果可以写明确的值也可以去写$.book_jg去接口返回值里面拿数据作为预期结果
sql断言第三个值逻辑运算符
sql断言第四个值sql语句可以在sql语句里面使用${case_id}去接口返回里面拿值来用和参数依赖一样都是使用jsonpath去提取的写法。 [[db_test2, $.book_jg, , SELECT book_jg FROM book where book_name${book_name} and book_id${book_id}]]9、完整断言写法 assert_expression:code: 201body: 520json:运单创建成功: $.msg301: $.book_jgsql:[[db_test2, $.book_jg, , SELECT book_jg FROM book where book_name${book_name} and book_id${book_id}]]三、邮件发送
配置邮箱的发送邮箱和授权码指定163邮箱和该邮箱的授权码 收件人支持其他邮箱填写格式如下
# 邮箱的地址
addresser xxn163.com
# 授权码
authorization_code xxxxxTN
# 收件人
recipients[xxxxxgmail.com, lxxx163.com]四、全局前后置
可以自定义前置干什么后置干什么我这边只写了后置数据统计和邮件发送
五、测试
1、启动mock接口 2、配置环境配置mock接口的协议和域名 3、配置环境名称和用例执行目录配置最多支持2级目录一般一个目录一个模块 4、用例编写
获取运单号:path: /get_waybill_nomethod: getheaders: {token: ${token}}is_run: Truedata:file:data_type:extract_key:waybill_no: $.waybill_noassert_expression:code: 200body: 520json:lj520: $.waybill_nosql:[[db_test2, $.book_jg, , SELECT book_jg FROM book where book_name${book_name} and book_id${book_id}],[db_test, $.title, , SELECT title FROM case_t where case_id${case_id}],[db_test, 唤醒不了, , SELECT title FROM case_t where case_id2]]录单:path: /lu_dan?aa${cc1}method: postheaders: {token: em123dca666333}is_run: Truedata:{waybill_no:${waybill_no},lu_dan_ren:${random_int(21)},aa:[{a:${random_str(22)}},{b:${random_int(2)}},{c:${cc1}},{d:{d1:${random_int(21)}}}]}file:data_type: jsonextract_key:assert_expression:code: 201body: 520json:运单创建成功: $.msg301: $.book_jgsql:[[db_test2, $.book_jg, , SELECT book_jg FROM book where book_name${book_name} and book_id${book_id}]]5、执行测试 6.邮箱配置和报告查看 记得先配置邮箱哦 邮箱报告这里面的一个报告连接就是allure报告的地址
allure报告