作为web自动化的入门学习,搭建框架练习下
一、熟悉项目的测试框架的整体目录

二、 PIP安装完所需框架
1、编写main.py
import pytest
if __name__ == '__main__':
#pytest.main() # 遍历相同目录下的所以test开头的用例
#生成测试报告
#一次执行所有接口测试用例,生成一个测试报告mix
pytest.main(['--html=../test1/report/test.html', "testwzm.py"])
2、设计登录获取鉴权
import requests
import json
import pytest
#获取环境鉴权
def session():
#url是固定的获取鉴权接口
url = 'https://XXXXXXXXXXXXXX'
print(url)
params = {"keywordType":"mobile","keyword":"18111111111","channel":"0","subChannel":"0"}
headers = {'content-type': "application/json"}
r = requests.post(url, data=json.dumps(params), headers=headers)
dict = json.loads(r.text)
print(dict)
chanelurl = dict['obj']['channelUrl']
print(type(chanelurl))
return chanelurl
3、设计页面测试用例 testwzm.py
from selenium import webdriver
import pytest
import requests
import json
from selenium.webdriver.common.keys import Keys
from testcases import session
from time import sleep
def test_testng():
"""测试页面"""
option = webdriver.ChromeOptions()
option.binary_location=r'C:\Program Files\Google\Chrome\Application\chrome.exe'
driver = webdriver.Chrome()
url = session.session()
print(url)
driver.get(url)
# 测试页面
driver.get('https://xxxxd')
driver.maximize_window()
sleep(1)
elem = driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/ul/li[1]')
elem.click()
sleep(1)
address = driver.find_element_by_xpath('//*[@id="app"]/div/dl[1]/dd[1]')
address.click()
sleep(1)
button = driver.find_element_by_xpath('//*[@id="app"]/div/button')
button.click()
sleep(1)
check = driver.find_element_by_xpath('//*[@id="app"]/div/div[3]/div[2]/div')
check.click()
sleep(1)
button1 = driver.find_element_by_xpath('//*[@id="app"]/div/div[3]/button')
button1.click()
sleep(3)
alert = driver.find_element_by_xpath('/html/body/div[2]/div/div[2]')
alert.click()
sleep(1)
cancel = driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/input')
cancel.click()
sleep(1)
yes = driver.find_element_by_xpath('//*[@id="app"]/div/div[6]/div[2]/p/a[2]')
yes.click()
#text_label = driver.find_element_by_xpath('//*[@id="kw"]')
sleep(1)
assert True ==(text_label.is_displayed())
driver.close()
driver.quit()
4、设计conftest.py 优化报告样式
from py.xml import html
import pytest
@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):
cells.insert(1, html.th('Description')) # 表头添加Description
cells.pop(-1) # 删除link
@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
cells.insert(1, html.td(report.description)) #表头对应的内容
cells.pop(-1) # 删除link列
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call): #description取值为用例说明__doc__
outcome = yield
report = outcome.get_result()
report.description = str(item.function.__doc__)
@pytest.mark.optionalhook
def pytest_html_results_summary(prefix): #添加summary内容



















