一. 做web自动化,想到以下三种自动化方式,各有优缺点。 1.基于UI的自动化 优点:简单,有很多可借鉴的材料。 缺点:非常不稳定;过于依赖界面,一旦界面发生变动,需要重新写;由于不稳定,受影响因素太多,维护成本大。 2.基于web接口的测试 优点:比基于UI的方式稳定很多。 缺点:可借鉴的材料不多,相对复杂;需要咨询开发对应的请求URL;请求结果不好解析,需要研究。 3.基于开发的代码 也就是在开发项目上直接建立测试代码,也就是白盒测试,类似于单元测试。 优点:非常稳定,可以深入开发代码逻辑进行测试。 缺点:需要看开发代码,难度较大;对后台代码逻辑进行了测试,但无法测试前台请求;直接在项目上写测试用例,领导貌似不太愿意 基于以上分析,暂决定采用第二种方式进行。也就是在功能测试任务完成的前提下,利用课余时间研究研究,加油!!!开始啦
二. 自动化测试需要解决的几大问题: 1)日志信息的完善、规范化,用例结果的定位就是通过日志,所以日志一定要规范化(通过打入日志可解决该问题); 2)生成测试结果报告; 3)所有的业务功能是否都适合使用发送http请求的方式,因为有的页面很复杂,请求报文参数很多; 4)结果分析,因为发送http请求,返回的结果是html页面,要想个办法如何分析结果,准确的判断执行是否成功(BeautifulSoup 解析html可解决该问题)。
三. 遇到问题,及解决方法 1.session的保持 s = requests.Session() s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')#cookie保留在s中 r = s.get("http://httpbin.org/cookies")#再次访问时会保留cookie 2.读取配置文件 配置文件server.con如下 [host] settle_host = 192.168.2.15 settle_port = 5050 """读取配置文件""" cf = ConfigParser.ConfigParser() cf.read("G:\PycharmProjects\jspt_test\conf\server.conf") SettleIp = cf.get("host", "settle_host") SettlePort = cf.get("host", "settle_port") 3.字符串去掉最后一个字符,例: a = "abc" b = [:-1] 结果:a:"abc" b:"ab" datetim类型转化为str recvmertime = '2017-10-10 09:32:29' #日期格式 str= recvmertime.strftime("%m%d%H%M%S") #转化为了字符串 4.python字典是无序的。。。 6.执行sql insertdelete update后要执行submit,否则不生效
|