96SEO 2026-02-19 10:07 0
因此通过自动化方式测试API_03接口时#xff0c;需要预先请求API_02接口在做接口自动化测试时往往会遇到接口间数据依赖问题即API_03的请求参数来源于API_02的响应数据API_02的请求参数又来源于API_01的响应数据。

因此通过自动化方式测试API_03接口时需要预先请求API_02接口获取到API_03的请求参数而获取API_02的响应又需要预先对API_01发起请求从响应中提取API_02的请求参数。
POST请求的话判断是否有【case依赖】【case依赖】为空则无依赖不为空则获取依赖的case
上述表格中shop-03的case依赖为shop-02获取到依赖的id后代码逻辑主动去判断shop-02接口的相关字段参数【是否运行】/【请求类型】/【case依赖】如果shop-02也存在依赖接口shop-01则代码继续判断shop-01接口对应字段参数。
shop-01接口【case依赖】字段为空时获取【请求数据】根据请求数据这个字段获取单独存储在字典中的完整的请求参数发起请求获得shop-01的响应后根据shop-01对应的【被依赖接口的返回数据】提取下游接口。
即shop-02的所需要的依赖参数存入一个依赖参数列表中shop-02接口把获取到的参数代入到请求参数中进行请求获取到shop-02的响应后同样根据【被依赖接口的返回数据】提取下游接口shop-03所需要的依赖参数存入依赖参数列表shop-03接口从列表中获取这个参数代入请求参数进入请求获取响应根据【实际结果取值字段】获取要断言的字段并对比预期结果完成该接口的测试。
判断是否有case依赖如果有case依赖则执行depend_data.py中的depend_response_data(self,caseid)方法该方法返回该接口发起请求的依赖参数elif
self.depend_result.depend_response_data(depend_caseid)log_info(main_logic.requests_api::根据依赖的caseid{},调用depend_data.depend_response_data获取到的依赖数据为{}.format(depend_caseid,
range(len(depend_key_list)):params[depend_key_list[j]]
rquests_headers()log_info(main_logic.requests_api::执行的用例{}请求url为{}入参为{}请求头为{}.format(caseid,url,params,header))response
print(response)self.results_list.append(response)else:header
print(response)self.results_list.append(response)#数据依赖模块部分代码示例
通过excel表中【case依赖】字段一层层向上游接口请求结果储存在一个结果列表中供下游接口调用最后返回测试接口所需要的依赖数据
depend_response_data(self,caseid):depend_caseid_t
self.excel_case_data.get_depend_caseid(caseid)depend_caseid_list
depend_caseid_t:#获取接口串联依赖caseid列表while
depend_caseid_t:depend_caseid_list.append(depend_caseid_t)depend_caseid_t
self.excel_case_data.get_depend_caseid(depend_caseid_t)depend_caseid_list.reverse()depend_caseid_list.append(caseid)march_result_list
len(depend_caseid_list)#迭代获取列表中的caseidfor
range(num_caseid):depend_caseid_s
self.excel_case_data.get_depend_caseid(depend_caseid_list[i])depend_key_list
self.excel_case_data.get_depend_key(depend_caseid_list[i]).split(,)params_key
self.excel_case_data.get_request_key(depend_caseid_list[i])params
self.requests_data[params_key]url
self.excel_case_data.get_url(depend_caseid_list[i])#判断该caseid的测试用例中case依赖是否为空if
depend_caseid_s:#获取上一个依赖接口返回的依赖参数params_data_list
march_result_list[i-1]#根据该caseid数据依赖字段构造该接口的传参for
range(len(depend_key_list)):params[depend_key_list[k]]
params_data_list[k][0]#对该接口发起请求header
GetExcelDate()is_depend_response
getdata.get_depend_response(depend_caseid_list[i])#判断该接口是否需要为下一接口返回依赖参数if
is_depend_response:depend_response_list
is_depend_response.split(,)results
depend_response_listmatchparams
matchlist)march_result_list.append(matchparams)else:print(caseid{}不需要返回被依赖的字段.format(depend_caseid_list[i]))#当该caseid测试用例中case依赖为空时直接请求该接口返回匹配到的下一关联接口的请求参数else:result
self.depend_response(depend_caseid_list[i])getdata
GetExcelDate()is_depend_response
getdata.get_depend_response(depend_caseid_list[i])if
is_depend_response:depend_response_list
is_depend_response.split(,)results
depend_response_listmatchparams
matchlist)march_result_list.append(matchparams)else:print(caseid{}不需要返回被依赖的字段.format(depend_caseid_list[i]))return
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走
这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback