接口测试案例分析:从变量到数据获取

需积分: 50 10 下载量 43 浏览量 更新于2024-08-16 收藏 7.2MB PPT 举报
"本文主要讲解接口测试中的变量定义与赋值,通过实例分析JMeter工具在测试不同类型的接口时如何处理参数。我们将探讨GET方法返回JSON数据的接口,并举例介绍多个实际接口的调用方式,包括历史上的今天、查询天气、IP归属地查询、快递查询、火车票站点数据及余票查询等。" 在接口测试中,变量的定义和赋值扮演着至关重要的角色。尤其是在JMeter这样的性能测试工具中,我们需要灵活地管理和操作变量来模拟真实的用户行为并进行参数化测试。变量通常用来存储请求参数、响应数据或用于后续的逻辑判断。以下是一些具体的接口测试案例,展示了如何定义和使用变量: 1. GET方法返回JSON数据: - 示例1:历史上的今天(http://www.ipip5.com/today/api.php?type=json) 这个接口需要一个参数`type`,其值为`json`,表示返回的数据格式。在JMeter中,我们可以定义一个变量`type_json`,并将值设为`json`,然后在HTTP Request sampler中作为查询参数使用。 2. 查询天气接口: - 示例2:查询今天的北京天气(http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC) 接口需要一个参数`city`,表示城市名。城市名需要进行URL编码,如`北京`编码为`%E5%8C%97%E4%BA%AC`。在JMeter中,可以定义变量`city_code`,并使用URL编码函数预先处理城市名。 3. IP归属地查询: - 示例3:查询IP1.1.1.1归属地(https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=1.1.1.1&co=&resource_id=6006) 这个接口有三个参数:`query`(IP地址),`co`(未知,可能为空),`resource_id`(查询机器的编号)。在JMeter中,可以分别为这些参数定义变量`query_ip`,`co_value`,`resource_id`。 4. 快递100接口: - 示例4:查询圆通快递单号123456(https://www.kuaidi100.com/query?type=yuantong&postid=123456) 接口需要两个参数:`type`(快递公司拼音)和`postid`(快递单号)。可以定义变量`type_yuantong`和`postid_123456`,分别赋值。 5. 火车票站点数据查询: - 示例5:获取版本号1.9018的站点数据(https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9018) 只有一个参数`station_version`,可以定义变量`station_version`并赋值。 6. 火车票余票查询接口: - 示例6:查询2017年8月14日北京到广州的成人票(https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2017-08-14&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=GZQ&purpose_codes=ADULT) 这个接口需要四个参数:`train_date`,`from_station`,`to_station`和`purpose_codes`。对应定义变量`train_date_20170814`,`from_station_BJP`,`to_station_GZQ`,`purpose_ADULT`。 在每个接口测试中,我们不仅需要定义和赋值变量,还需要考虑参数的合法性、编码问题以及错误处理。例如,对于城市编码,需要确保输入的城市名正确编码;对于日期和时间,应遵循正确的格式;对于未知参数,如果文档没有明确说明,可能需要通过实验或询问开发人员来确定其用途。 此外,JMeter提供了丰富的功能,如正则表达式提取器、断言、CSV Data Set Config等,可以帮助我们处理和验证接口返回的数据。通过变量,我们可以将接口返回的值保存下来,用于后续请求或验证,从而实现更复杂的测试场景。 接口测试中的变量定义和赋值是确保测试准确性和全面性的重要步骤。熟练掌握变量的使用,能帮助我们更加有效地测试和调试接口,确保系统的稳定性和性能。