使用request和pytest进行API测试

需积分: 5 0 下载量 51 浏览量 更新于2024-09-27 收藏 390KB ZIP 举报
资源摘要信息:"day2.zip文件中包含了关于'request'和'pytest'的教程或示例代码。'request'是Python中用于发送HTTP请求的库,而'pytest'是Python的一个功能强大的测试框架。" 知识点: 1. Python中的request库:request是一个简单易用的Python HTTP库,用于处理HTTP请求。它是一个第三方库,可以通过pip安装,广泛应用于Web开发和测试中,特别是用于编写单元测试、集成测试以及API测试。request库的主要优点包括易用性高、文档齐全、社区支持良好、能够处理各种HTTP请求方法(如GET、POST、PUT、DELETE等),并支持请求与响应的JSON数据格式处理。 2. request库的使用场景:在Python Web开发中,使用request库可以方便地与远程服务器进行通信,发送网络请求并接收响应。它常用于调用RESTful API服务、下载远程数据、验证网络连接等功能。此外,在自动化测试中,request可以模拟客户端行为,实现对Web服务的自动化测试。 3. request库的安装与导入:要在Python项目中使用request库,首先需要通过pip命令安装:`pip install requests`。安装完成后,在Python代码文件中导入request模块,使用`import requests`即可开始使用。 4. 使用request发送基本HTTP请求:使用request库发送GET、POST、PUT、DELETE等HTTP请求十分简单。例如,发送一个GET请求可以通过`requests.get(url, params=None, **kwargs)`函数实现,其中url是请求的网址,params是可选的字典参数,**kwargs是其他可选参数。而POST请求则可以使用`requests.post(url, data=None, json=None, **kwargs)`等函数。 5. 使用request处理响应:发送请求后,request库会返回一个响应对象,包含了服务器响应的所有信息。从这个响应对象中,可以获取状态码、响应头、响应体等信息。例如,使用`response.status_code`获取HTTP状态码,`response.text`获取响应的文本内容。 6. Python中的pytest框架:pytest是一个Python的测试框架,它允许编写简洁、可读性强的测试用例。pytest不仅可以运行简单的测试代码,还支持复杂的测试场景,如参数化测试、测试固件设置、插件扩展等。pytest的官方文档详尽,社区支持也非常活跃,是许多Python开发者的测试工具首选。 7. pytest的安装与配置:安装pytest可以通过pip命令进行:`pip install pytest`。安装后,pytest会自动查找项目中的测试文件。默认情况下,pytest会执行以`test_`开头的Python文件中的函数,并且这些函数的名称通常以`test_`开头。 8. 编写pytest测试用例:使用pytest编写测试用例非常简单。一个基本的测试用例只是一个普通的Python函数,函数名以`test_`开头。在函数中,可以使用assert语句来验证代码的行为是否符合预期。pytest会自动收集这些测试用例,并提供丰富的命令行选项和插件系统来定制测试行为。 9. pytest的高级特性:pytest具备多种高级测试特性,如夹具(fixture)功能,可以为测试提供预设的环境和数据。使用fixture可以设置测试前的数据准备和测试后的清理工作,这极大地简化了测试代码的编写。此外,pytest支持参数化测试,允许单个测试函数使用不同的输入参数运行多次。 10. 执行pytest测试:通过命令行运行pytest时,可以直接执行pytest命令。pytest会自动识别并执行项目中所有符合条件的测试函数。也可以通过指定文件名、函数名或类名来运行特定的测试。 综上所述,day2.zip文件中很可能是包含了关于request和pytest的详细教程或示例代码,可以帮助开发者更加深入地了解如何在Python项目中进行HTTP请求的发送以及如何编写和执行有效的测试用例。
2023-06-03 上传
2023-06-09 上传

while (calendar .getTime().before(TUpdEndTm)) Date date = calendar .getTime(); calendar.add(Calendar .DAY_OF_YEARamount: 1) TUpdTm = sdf.format(date) ; String dir = rootdir + "/" + TUpdTm; // 连接FTP ChannelSftp connect = FtpUtil.connect(username, password, host, port);List<String> rootFilelists = FtpUtil.listFiles(connect, rootdir); if (!rootFilelists.isEmpty() && rootFilelists.contains(TUpdTm)) { try {vatService.deletefile( delpath: imageFile + "/" + TUpdTm);vatService.deletefile( delpath: imageFile + "/" + TUpdTm + ",zip");} catch (Exception e1) { e1.printStackTrace(); // 创建存放单证的文件夹 File cImFile = new File(imageFile);if (!clmFile.exists() && !clmFile.isDirectory()) {cImFile.mkdir(): // 创建以公式日期命名存放单证的文件夹 File clmNoFile = new File( pathname: imageFile + TUpdTm); if (!clmNoFile.exists() && !clmNoFile.isDirectory()) { clmNoFile.mkdir(); OutputStream os = null; try { List<String> fileLists = FtpUtil.listFiles(connect, dir);List<String> gsNumList = new ArrayList<String>(0); if (!fileLists.isEmpty()) { /*List<String> gsList = ps.getGsList(fileLists); for (String gs : gsList) { for (String file : fileLists) {if(file.contains(gs)){gsNumList.add(file); gsNumList = fileLists; if (!gsNumList.isEmpty()) { for (String file : gsNumList) { File localFile = new File( pathname: imageFile + TUpdTm + "/" + file);if (!localFile.getParentFile().exists()) { localFile.getParentFile().mkdirs(); TocalFile.createNewFile() connect.cd(dir);// 进入所在路径 os = new FileOutputStream(localFile); connect.get(file, os); os.close(); } else { serviceResponse.setReturn_type(ActionConstant.RESPONSE_RESULT_TYPE_ERROR);serviceResponse.setReturnMessage("该日期不存在公示异议!"); // /打包Zip vatService.createZip( sourcePath: imageFile + TUpdTm,zipPath: imageFile + TUpdTm + ".zip"); } catch (Exception e) { e.printStackTrace() : } finally { if (null != ftpFileInput) { ftpFileInput.close() : os.close(); l*//删除文件夹下所有文件 serviceResponse.setReturnMessage("true");} else { serviceResponse .setReturn_type(ActionConstant.RESPONSE_RESULT_TYPE_ERROR);serviceResponse.setReturnMessage(该日期不存在公示异议!"); return serviceResponse; 在这段代码中,TUpdTm会在while的循环中变成三个不同的值,如何能让只要有其中一次的TUpdTm满足if条件就不进入else,相反,三次TUpdTm的值均不满足if条件才进入else,不能使用break跳出循环的方法

2023-05-31 上传