枯燥的学习当然要从一首好听的音乐开始
接口自动化的开展:
首先在进行接口自动化的时候,前提条件肯定是开发提供有api文档,然后我们根据api文档在Excel上面写接口测试用例,接着用代码读取Excel上面的测试用例实现接口的自动化测试。
这次进行的接口自动化的案例是 cnode 网站,这是它的api文档
这次案例我们只针对获取主题首页进行的测试,根据这个文档编写获取主题首页的测试用例
测试用例完成之后,我们开始进行代码的编写,首先我进行的是对获取主题的这个单个方法的封装,接着又对整个读取Excel的操作进行了封装,为了让看起来简单易懂一点,可能函数参数有点啰嗦,还请别太吐槽,以下是实现代码,代码是完整的封装好的,可以直接拿去用的。
import requestsimport xlrdfrom xlutils.copy import copyapi_url = "https://cnodejs.org/api/v1/topics"def get_topics(data): """ :param data: 请求参数 :return: 响应状态码 """ return requests.get(api_url,params=data).status_codedef test_topics ( file_url,table_name,table_index, sta_line,end_line,data_row,expect_row,actual_res,res,save_url ): """ :param file_url: 将要读取的Excel测试用例 :param table_name: Excel中用例所在表的名称 :param table_index: Excel中用例所在表的下标位置 :param sta_line: Excel用例的开始行 :param end_line: Excel用例的结束行 :param data_row: Excel用例的请求参数列 :param expect_row: Excel用例的预期结果列 :param actual_res: Excel用例的实际结果列 :param res: Excel用例的测试结果列 :param save_url: 用例执行结束后保存测试文件副本的路径 :return: 打开测试文件副本即是执行后的文件 """ file_url = file_url # 打开用例Excel formatting_info=True # 让Excel格式保持不变,这个参数不兼容xlsx格式的,所以要将其后缀改为xls open_file=xlrd.open_workbook(file_url) test_table = open_file.sheet_by_name(table_name) res_file = copy(open_file) res_table = res_file.get_sheet(table_index) for i in range(sta_line,end_line): data = test_table.cell(i,data_row).value expect = test_table.cell(i,expect_row).value res_code = get_topics(data) res_table.write(i,actual_res,res_code) test_res = 'pass' if expect == res_code else 'fail' res_table.write(i,res,test_res) res_file.save(save_url)
调用函数的示例:
if __name__ == '__main__': file_url = r'xxxx\conde网站接口测试用例.xls' table_name = '获取主题' table_index = 0 sta_line = 1 end_line = 8 data_row = 4 expect_row = 5 actual_res = 6 res = 7 save_url = r'xxxx\conde网站接口测试用例副本.xls' test_topics(file_url,table_name,table_index,sta_line,end_line,data_row,expect_row,actual_res,res,save_url)
实现结果:
以上内容就是一个简单的接口自动化的开展到实现过程,你get到了吗,觉得内容有帮助小伙伴记得扫码点个关注喲。
可是啊,海上月不可捞,心上人不可及。
往期文章
一行python代码都能实现什么??
python的迭代器 生成器 装饰器
python 中的运算比较符 is 与 ==
selenium元素定位的八种方式
selenium爬取网易云热评与代码调试