def call(self, *args): # 对每次调用的函数都做截图操作
try:
self.func(self, *args)
except Exception as msg:
### pic=self.driver.get_screenshot_as_file('C:\Users\zhengtao\Desktop\pic\'+self.name)
return pic
raise msg
pic=self.driver.get_screenshot_as_file('C:\Users\zhengtao\Desktop\pic\'+self.name)
你这个 pic 想要获取什么值呢?
对应的 web 搭建平台记录: https://testerhome.com/topics/11183
以上已实现,并和 flask 搭建的 web 管理平台集成
在以前一般都是有区分这两个职位的:
QA:Quality Assurance,品质保证 一般是进行开发质量流程的制定和监督,不参与具体的测试执行
QC:Quality Control,品质控制 一般就是测试的执行
现在比较少有公司会有这个定义上的 QA 了, 据我所知一些大型的外包公司会有,主要是定一下测试的流程、准入准出标准等,同时监督具体的测试人员在项目中是否严格按这些流程在走。
现在普遍都把测试人员叫做 QA 。
它功能就是这么设计的,方便你单独测试一个方法和所有方法
哈哈,被你搓开了
我使用 chrome 去掉最大化也是可以点击到的,可能是你 chrome 版本问题?
看下你的 driver 是怎么定义的? 发完整的代码看下吧
我现在也在做一个类似的例子,和楼主的思路有以下区别:
接口例子:
按定义的规则,生成如下一批测试用例:
具体用例执行结果
因为我电脑没装 Firefox ,所以用 chrome 试了下, 加上一个页面最大化的命令是可以的,你可以试下:
建议定义好测试的范围,例如把测试用例划分为几个级别:
P1 : 冒烟测试
P2: 重要功能流程测试
P3: 分支功能测试
P4: 兼容性、UI 功能等
还在迭代开发阶段,P1、P2 的自动化用例执行的可能性会很高,因为每次发版可能都要执行一遍,所以做自动化的价值比较高;并且 P1、P2 的用例是比较少的,维护起来工作量也不会很高。总体来说,这些用例自动化的性价比很高。
P3、P4 设计界面、分支等功能调整的可能性是比较大的,而且用例数量也会很大,一旦有变动需要维护时,工作量也很高,因此可以先考虑不做这部分的自动化测试;
个人的体会: 自动化覆盖的功能越重要、 执行的频率越高, 价值就越大。
右上角
试下 find_elements_by_, 注意和 find_element_by_ 的区别
方案 1:使用 find elements by id 定位四个航班的数组,第一个就是第一个航班
方案 2:使用其他不重复的信息来定位元素,如 xpath 等
我试了用 css、 xpath 、 link text 都可以定位到啊
平均响应时间: 所有请求的平均响应时间,取的平均值
95%percentile : 统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组 n 个观测值按数值大小排列。如,处于 p% 位置的值称第 p 百分位数。
例如有 100 个请求, 每个请求的响应时间分别是 1-100 平均分布
平均响应时间: 1-100 的平均值,即 50.5
95% percentile : 按从小到大排序,累计第 95 百分位,也就是 95(即样本里 95% 的数据都不高于这个值)
可以看出为什么两个值差那么大了
你现在是在类内部调用 self ,是不会找到上面的定义吧?
你要调用 self.driver , 就首先得定义有 driver 这个属性啊
比如上面的 self.name、 self.func 都已经定义好了,就不会报错。
解决:
方法 1 : 加上 self.driver 的定义
方法 2: 从其他类把 driver 拿过来用
self.driver.get_screenshot_as_file
你定义的 take screenshot 这个类里没有 driver 属性
右键元素把 xpath 的值复制出来看看是否和你写的不一样
我的做法:自动化测试的数据都带上 autotest 的前缀,这样就很容易区分了
自动化测试都是机器执行的,所以这些成本不需要太在意。
重点是保证:1. 每条用例可以独立执行,用例之间减少耦合性 2. 每条用例都可以重复执行
发现你还写漏了一个 ()
应该是:
self.driver = AppiumTest().get_driver()
自己的代码,多调试调试吧,这样才能找到原因和进步
class Login(object):
def init(self,driver):
self.driver = AppiumTest.get_driver(driver)
你把 LoginPage.py 的 self.driver = AppiumTest.get_driver(driver) 改为 self.driver = AppiumTest.get_driver() 试下就知道效果了