自己新建一个类,继承unittest,然后修改必要的一些方法,并添加部分方法,譬如设置testName啊,设置标记值来标记case知否执行结束啊。这些都是可以根据自己喜好来加入的方法。
def setTestName(self, tname): self.testname = tname def getTestName(self): return self.testname def setCompleted(self): self.completed = True def isCompleted(self): return self.completed |
对于unittest框架的修改 就写这么多。
对selenium的基本方法做一些小改动,动机优化 unittest 框架一致,只是为了让你的用例跑起来的时候更加让人理解。我们相当于在 selenium 的基本方法外面又封装了一层。下面是部分方法示例:
def open(self,url): self.sel.open(url) def GetValue(self, element): value = self.sel.get_value(element) self.assertLogTrue(True, "Value for element %s is %s" %(element, value)) return value def isTextPresent(self, text): val = self.sel.is_text_present(text) if val is False: self.assertLogTrue(val, note="error occured *************" + text +\ " not found") else: print 'present (%s,%s)' % (text,val) return val def Select(self, element, selection): if self.isElementPresent(element): self.sel.select(element, selection) def Check(self, element): if self.isElementPresent(element): self.sel.check(element) def Type(self, element, text): if self.isElementPresent(element): self.sel.type(element, text) |
测试数据分离,这个做的非常简单,就是把期望值和控件位置作为测试数据放入 xml 中。
GWEB link //span[text()="Web"] Web GIMAGES link //span[text()="Images"] Images |
name 表示控件名字,type 为控件的类型,locator 表示控制位置,expect_value 表示期望值。