网站不足,网站外链建设布局,南通网站建设方法,做网站的叫云啥1、开发环境 操作系统#xff1a;Ubuntu18 开发工具#xff1a;IDEAPyCharm插件 Python版本#xff1a;3.6
2、用到的模块 requests#xff1a;用于发送请求 xlrd#xff1a;操作Excel#xff0c;组织测试用例 smtplib#xff0c;email#xff1a;发送测试报告 l…
1、开发环境 操作系统Ubuntu18 开发工具IDEAPyCharm插件 Python版本3.6
2、用到的模块 requests用于发送请求 xlrd操作Excel组织测试用例 smtplibemail发送测试报告 logging日志追踪 json数据格式化 Django接口开发 configparser读取配置文件
3、框架设计
3.1、流程 接口用例是通过Excel来组织的定义了URLRequest Body等列。执行流程如下 使用xlrd工具读取Excel中的信息拼接成一个个完整的请求。 接口请求类拿到一个个完整的请求的去执行这个过程需要记录日志每一次执行情况都要有迹可循。 回填测试结果发送邮件归档每次的运行结果。更好一点的做法是把历史运行情况做个报表更直观。 优点 用例通过Excel来组织不需要编写代码上手难度小。 在用例个数不是很多的情况开发速度快。 缺点 用例依赖是痛点。 只能支持接口自动化用例。 Excel中用例无法预先检查正确性只有跑一把才能知道。 无法很好地管理大量用例且不支持团队协同作业个人用来回归测试或上线后的冒烟测试会是一个不错的选择。
通过优缺点的对比可以明显发现这个框架的硬伤其实很多了。所以无论是业界开源的自动化测试框架或企业自研的还没有见过用Excel来组织用例的。值得一提的是个别企业自研的自动化框架非常难用抑或是把一堆工具简单组合到一起。根本无法提高团队的生产力。不过好的产品也不是一蹴而就的需要一个持续优化的过程。所以上面用Excel组织用例的框架还是值的玩一玩的暂且命名为apitest吧。目前比较好的自动化测试框架有unittesttestngpytest等。
3.2、项目结构 testcase存放测试用例或请求的json文件。 config配置文件。 report测试报告和日志文件及其归档。 untils工具集send_request用来发送请求email_tool用来发送邮件excel_tool用来读取Excel中的数据check_result用来校验结果run_main用例执行入口log_trace用来追踪日志。
4、日志打印
采用内置logging模块才记录运行日志设置日志级别。
log_trace.log:
import loggingfilename ../report/test_case_run.loglogging.basicConfig(levellogging.INFO,format%(asctime)s %(levelname)s1 %(filename)s [line:%(lineno)d] %(message)s,datefmt%a, %d %b %Y %H:%M:%S,filenamefilename,filemodew)
复制代码
5、接口请求类封装
安装第三方模块requests
pip install requests
复制代码
定义函数send_request根据传入的方法类型分别去调用request的getpostdeleteput等方法去发送请求。send_request.py:
import requestsfrom untils. log_trace import *#发送get请求def get_request(url,dataNone,headersNone):res requests.get(urlurl,datadata,headersheaders)return res#发送post请求def post_request(url,data,headersNone):res requests.post(urlurl,datadata,headersheaders)return res#发送delete请求def del_request(url,dataNone,headersNone):res requests.delete(url,datadata)return res#发送put请求def put_request(url,data,headersNone):passdef send_request(method,url,dataNone,headersNone):try:logging.info(headers)if headers:if method GET:return get_request(url,data,headersheaders)if method POST:return post_request(url,datadata,headersheaders)if method DELETE:return del_request(url,datadata,headersheaders)#put使用频率低暂时不写if method PUT:return put_request(url,datadata,headersheaders)else:logging.info(Header is null)except Exception as e:logging.info(send request fail:%s%e)
复制代码
在untils_test.py中编写代码测试send_request方法代码如下
#coding:utf-8from untils.send_request import send_requestdef test_send_request():urlhttp://127.0.0.1:9000/articles/headers {X-Token:0a6db4e59c7fff2b2b94a297e2e5632e}res send_request(GET,url,headersheaders)print(res.json())if __name__ __main__:test_send_request()
复制代码
运行结果
/usr/bin/python3.6 /home/stephen/IdeaProjects/apitest/untils/untils_test.py{status: BS.200, all_titles: {amy1: alive, modifytest: alive, addTest: alive}, msg: query articles sucess.}Process finished with exit code 0 如果文章对你有帮助记得点赞收藏加关注。会不定期分享一些干货哦......
最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把